作成日:2006/08/07
4C.2 テンプレート変数
テンプレート変数はPHPによってアサイン(割り当て)されるか、 または設定ファイルによって読み込まれます。
PHPによってアサインされる変数の種類には、PHPのスカラー型(数値、文字列、ブーリアン)、 添字配列、連想配列、オブジェクトがあります。 設定ファイルによって読み込まれる変数は、定数としての性格が濃く、 PHPとは無関係に設定できるのでデザイナーが直接定義できます。
テンプレート変数の表記法
| 変数の種類 | 表記法 |
|---|---|
| スカラー型 | {$variable} |
| 添字配列 | {$array[0]}
{$array[1]} |
| 連想配列 | {$hash.key} |
| オブジェクト | {$object->property} |
| 設定ファイルによって 読み込まれる変数 |
{#constant#} |
変数展開
テンプレート変数は、PHP同様、テンプレートタグ内のダブルクォート(文字列)の中で変数展開ができます。 但し、配列とオブジェクトの場合はバッククォート( ` )で囲む必要がありますです。 尚、設定ファイルによって読み込まれる変数は変数展開できません。
| 変数の種類 | |
|---|---|
| スカラー型 | {func "$variable"} |
| 添字配列 | {func "$array[0]"} |
| 連想配列 | {func "`$hash.key`"} |
| オブジェクト | {func "`$object->property`"} |
テンプレート変数の表記法
$Smarty はSmartyによって予約されている特殊なテンプレート変数です。$Smarty は連想配列です。
| キー | 説明 | 用例 |
|---|---|---|
now |
現在のUNIXタイムスタンプ | {$smarty.now|date_format:"%Y-%m-%d"} |
const |
PHP定数へのアクセスに使用 | {$smarty.const.MY_CONSTANT} |
capture |
capture関数の出力用変数 | {$smarty.capture.foo} |
config |
設定変数の参照に使用 | {$smarty.config.foo} {* #foo#と同義 *} |
section |
sectionプロパティの参照に使用 | {$smarty.section.foo} |
foreach |
sectionプロパティの参照に使用 | {$smarty.foreach.foo} |
template |
現在のテンプレート名 | {$smarty.template} |
version |
Smartyのバージョン | {$smarty.version} |
ldelim |
左デリミタの参照に使用 | {$smarty.ldelim} |
rdelim |
右デリミタの参照に使用 | {$smarty.rdelim} |
get |
$_GET['foo'] | {$smarty.get.foo} |
post |
$_POST['foo'] | {$smarty.post.foo} |
cookies |
$_COOKIES['foo'] | {$smarty.cookies.foo} |
server |
$_SERVER['foo'] | {$smarty.server.foo}
{$SCRIPT_NAME} {* $smarty.server.SCRIPT_NAME と同義 *} |
env |
$_ENV['foo'] | {$smarty.env.foo} |
session |
$_SESSION['foo'] | {$smarty.session.foo} |
request |
$_REQUEST['foo'] | {$smarty.request.foo} |
