{$smarty} 予約変数は、PHP スクリプトから割り当てる必要はありません。これらは、テンプレート内で直接アクセスできる配列型変数です。通常、いくつかの特別なテンプレート変数にアクセスするために使用されます。たとえば、テンプレート内のページ リクエスト変数に直接アクセスする、テンプレートにアクセスするときにタイムスタンプを取得する、PHP の定数に直接アクセスする、構成ファイルから変数を読み取るなどです。
1.テンプレート内のページリクエスト変数にアクセスする
PHP スクリプトでは、スーパー グローバル配列 $_GET、$_POST、$_REQUEST を介してクライアント上でさまざまな方法でサーバーに送信されたデータを取得したり、$_COOKIE または $_SESSION を介して複数のスクリプト間の変数を追跡したりできます。 $_ENV および $_SERVER を通じてシステム環境変数を取得します。これらの配列がテンプレートで必要な場合は、Smarty オブジェクトの assign() メソッドを呼び出して、それらをテンプレートに割り当てることができます。ただし、Smarty テンプレートでは、{$smarty} の予約変数を通じてこれらのページ リクエスト変数に直接アクセスできます。 テンプレートで使用される例は次のようになります:
PHP コード
1. {$smarty.get.page} {* PHP メソッド: $_GET["page"] *}
2. {$smarty.post.page} {* PHP メソッド: $_POST["ページ"] *}
3. {$smarty.cookies.username} {* PHP メソッド: $_COOKIE["username"] *}
4. {$smarty.session.id} {* PHP メソッド: $_SESSION ["id"] *}
5. {$smarty.server.SERVER_NAME} {* PHP メソッド: $_SERVER["SERVER_NAME"] *}
6. PHP メソッド: $_ENV["PATH"]*}
7. {$smarty.request.username} {* PHP メソッド: $_REQUEST["username"] *}
2.テンプレート内の PHP の変数にアクセスする
PHP スクリプトには 2 種類のシステム定数とカスタム定数があります。これらの 2 つの定数は Smarty テンプレートでもアクセスでき、変数が {$smarty} を通じて保持されている限り、定数を PHP から割り当てる必要はありません。値を直接出力できます。テンプレートで定数を出力する例は次のとおりです:
1. {$smarty.const._MY_CONST_VAL} {* PHP スクリプトでカスタマイズされた定数を出力します *}
2. {$smarty.const.__FILE__} {* 変数配列を保持してシステム定数を直接出力します *}
3. その他
1. {$smarty.now} 変数は、現在のタイムスタンプにアクセスするために使用されます
date_format アジャスターは、たとえば、{$smarty.now|date_format:"%Y のように使用できます。 -%m-%d %H:%M:%S"}
2.{$smarty.const}
PHP 定数に直接アクセスできます。たとえば、{$smarty.const._MY_CONST_VAL}
3.{ $smarty.capture}
{capture}..{/capture} 構造を通じてキャプチャできる出力には、{$smarty} 変数を使用してアクセスできます。
4.{$smarty.config}
{ $smarty} 変数は、ロードされた設定変数にアクセスできます
たとえば、{$smarty.config.foo} は、{#foo#}
5.{$smarty.section}、{$smarty.foreach}
{ $smarty} 変数は、「section」および「foreach」ループ属性にアクセスできます
6.{$smarty.template} は、現在処理されているテンプレートの名前を表示します
7. {$smarty.version}
は、 Smarty テンプレート
8.{$smarty.ldelim} は左の区切り文字を表示します
9.{$smarty.rdelim} 右の区切り文字を表示します