首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

Smarty 模板中直接存取 $_GET、$_POST、$_SESSION 等超級全域變數的完整指南

     編輯:PHP 綜合知識

在 Smarty 模板引擎中,{$smarty} 保留變數是一組無需在 PHP 腳本中額外指派即可直接於模板中存取的特殊陣列變數。它極大地簡化了模板層對請求資料、環境資訊及系統常數的獲取,是開發高效、乾淨模板的關鍵工具。

一、直接存取頁面請求變數

傳統做法需在 PHP 中以 assign() 將 $_GET、$_POST、$_COOKIE、$_SESSION、$_SERVER、$_ENV 等超級全域陣列逐一傳遞給模板。而透過 {$smarty},您可以在模板中直接以點語法呼叫對應鍵值,語法直觀且減少控制器層的樣板程式碼。

常用存取範例

{* 等同於 $_GET['page'] *}
{$smarty.get.page}

{* 等同於 $_POST['page'] *}
{$smarty.post.page}

{* 等同於 $_COOKIE['username'] *}
{$smarty.cookies.username}

{* 等同於 $_SESSION['id'] *}
{$smarty.session.id}

{* 等同於 $_SERVER['SERVER_NAME'] *}
{$smarty.server.SERVER_NAME}

{* 等同於 $_ENV['PATH'] *}
{$smarty.env.PATH}

{* 等同於 $_REQUEST['username'] *}
{$smarty.request.username}

二、直接輸出 PHP 常數

無論是系統內建常數(如 __FILE__、PHP_VERSION)或專案自訂常數,均可透過 {$smarty.const.常數名} 直接輸出,無需在 PHP 端額外處理。

{* 輸出自訂常數 _MY_CONST_VAL *}
{$smarty.const._MY_CONST_VAL}

{* 輸出系統常數 __FILE__ *}
{$smarty.const.__FILE__}

三、其他實用保留變數速查

  • {$smarty.now}:取得目前 Unix 時間戳,搭配 date_format 修飾器可格式化輸出,例如 {$smarty.now|date_format:"%Y-%m-%d %H:%M:%S"}。
  • {$smarty.capture}:存取 {capture}...{/capture} 區塊捕獲的輸出內容。
  • {$smarty.config}:讀取已載入的設定檔變數,{$smarty.config.foo} 等同於 {#foo#}。
  • {$smarty.section}、{$smarty.foreach}:存取 section 與 foreach 迴圈的屬性(如 index、iteration、first、last 等)。
  • {$smarty.template}:顯示正在處理的模板檔案名稱。
  • {$smarty.version}:顯示目前 Smarty 版本號。
  • {$smarty.ldelim}、{$smarty.rdelim}:分別輸出左、右定界符,避免與模板語法衝突。

善用 {$smarty} 保留變數,不僅能減少 PHP 控制器與模板之間的資料傳遞負擔,更能讓模板邏輯更專注於呈現層,提升專案的可維護性與開發效率。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved