Get Smarty

Donate

Smarty Icon

You may use the Smarty logo according to the trademark notice.

Smarty Template Engine Smarty Template Engine

For sponsorship, advertising, news or other inquiries, contact us at:

Sites Using Smarty

Buy cheap glasses from Cheapglasses123.com and save up to 80%.

Where to buy prescription glasses? EyewearCanada.com is your best choice!

Advertisement

Chapter 7. 組み込み関数

Smarty にはいくつかの組み込み関数があります。 これらはテンプレートエンジンにとって必要不可欠なものです。 組み込み関数はコンパイル時に PHP のコードに展開され、 最大のパフォーマンスを発揮します。

これらと同じ名前の カスタム関数 を作成したり、組み込み関数を修正したりする事はできません。

これらの関数の一部は assign 属性を持っており、 結果を出力せずにここで指定した名前のテンプレート変数に格納します。これは {assign} 関数と似ています。

{$var=...}

これは {assign} 関数の短縮形です。 値を直接テンプレートに代入したり、配列の要素に代入したりできます。

Note

テンプレート内で変数に代入するというのは、 本質的にはアプリケーションのロジックをプレゼンテーションに持ち込んでいることになります。 これは本来 PHP 側でやったほうがうまく処理できることでしょう。 自己責任のもとで使いましょう。

次の属性をタグに追加することができます。

属性

属性名 短縮形 必須 デフォルト 概要
scope n/a string No n/a 代入する変数のスコープ。'parent'、'root' あるいは 'global'

オプションのフラグ

名前 概要
nocache 変数を 'nocache' 属性つきで代入する

Example 7.1. シンプルな代入


{$name='Bob'}

The value of $name is {$name}.

  

上の例の出力は次のようになります。


The value of $name is Bob.

  

Example 7.2. 計算結果の代入


{$running_total=$running_total+$some_array[row].some_value}

  

Example 7.3. 配列要素の代入


{$user.name="Bob"}

  

Example 7.4. 多次元配列の要素の代入


{$user.name.first="Bob"}

  

Example 7.5. 配列要素の追加


{$users[]="Bob"}

  

Example 7.6. 呼び出し元テンプレートのスコープでの代入

インクルードされたテンプレート内で代入した変数は、インクルードした側のテンプレートからも見えます。


{include file="sub_template.tpl"}
...
{* サブテンプレートで代入した変数を表示します *}
{$foo}<br>
...

  

上のテンプレートでインクルードしている sub_template.tpl の例を次に示します。


...
{* foo はインクルード元のテンプレートからも見えます *}
{$foo="something" scope=parent}
{* bar はこのテンプレート内でしか見えません *}
{$bar="value"}
...


{assign} および {append} も参照ください。

Comments
No comments for this page.

Advertisement