{$smarty} 予約変数は、PHP スクリプトから割り当てる必要はありません。これらは、テンプレート内で直接アクセスできる配列型の変数です。通常、いくつかの特別なテンプレート変数にアクセスするために使用されます。たとえば、テンプレート内のページ リクエスト変数に直接アクセスする、テンプレートにアクセスするときにタイムスタンプを取得する、PHP の定数に直接アクセスする、設定ファイルから変数を読み取るなどです。この予約変数のアクセスの一部を以下に説明します。
1.テンプレート内のページ リクエスト変数にアクセスします
サーバーに送信されたデータは、PHP スクリプトのスーパー グローバル配列 $_GET、$_POST、$_REQUEST、または $_COOKIE または $_SESSION を通じてクライアント上でさまざまな方法で取得できます。複数のスクリプト間の変数を追跡するか、$_ENV および $_SERVER を通じてシステム環境変数を取得します。これらの配列がテンプレートで必要な場合は、Smarty オブジェクトの assign() メソッドを呼び出して、それらをテンプレートに割り当てることができます。ただし、Smarty テンプレートでは、{$smarty} の予約変数を通じてこれらのページ リクエスト変数に直接アクセスできます。テンプレートで使用されている例は次のとおりです:
1. {$smarty.get.page} {* PHP方式:$_GET["page"] *} 2. {$smarty.post.page} {* PHP方式:$_POST["page"] *}3. {$smarty.cookies.username} {* PHP方式:$_COOKIE["username"] *} 4. {$smarty.session.id} {* PHP方式:$_SESSION["id"] *} 5. {$smarty.server.SERVER_NAME} {* PHP方式:$_SERVER["SERVER_NAME"] *} 6. {$smarty.env.PATH} {* PHP方式:$_ENV["PATH"]*} 7. {$smarty.request.username} {* PHP方式:$_REQUEST["username"] *}
2.テンプレートで PHP の変数にアクセスする
PHP スクリプトには 2 種類のシステム定数とカスタム定数があります。これら 2 つの定数は Smarty テンプレートでもアクセスでき、PHP から割り当てる必要はありません。変数を使用して定数の値を直接出力します。テンプレートで定数を出力する例は次のとおりです。
1. {$smarty.const._MY_CONST_VAL} {* 输出PHP脚本中自定义的常量 *} 2. {$smarty.const.__FILE__} {* 通过保留变量数组直接输出系统常量 *}