標籤:
{$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指令碼中有系統常量和自訂常量兩種,同樣這兩種常量在Smarty模板中也可以被訪問,而且不需要從PHP中分配,只要通過{$smarty}保留變數就可以直接輸出常量的值。在模板中輸出常量的樣本如下所示:
1. {$smarty.const._MY_CONST_VAL} {* 輸出PHP指令碼中自訂的常量 *} 2. {$smarty.const.__FILE__} {* 通過保留變數數組直接輸出系統常量 *}
smarty模板中擷取頁面參數