PHP模板引擎Smarty保留变量详解

周叙
周叙
发布时间:2026-10-14 | 3人浏览过
原创

Smarty模板引擎提供了一系列无需通过PHP脚本预先分配即可在模板中直接使用的保留变量(Reserved Variables)。掌握这些变量可以大幅简化代码,方便获取外部请求、系统信息、配置内容及内部状态。

访问页面请求变量

Smarty提供了专用的保留变量结构来映射PHP的超全局数组。开发者可以在模板文件中直接读取GET、POST、COOKIE、SESSION、SERVER和ENV等数据,替代繁琐的赋值操作。

{$smarty.get.user}        // 等价于 $_GET['user']
{$smarty.post.user}       // 等价于 $_POST['user']
{$smarty.cookie.username} // 等价于 $_COOKIE['username']
{$smarty.session.username}// 等价于 $_SESSION['username']
{$smarty.server.REMOTE_ADDR} // 等价于 $_SERVER["REMOTE_ADDR"]
{$smarty.env.PATH}        // 等价于 $_ENV['PATH']
{$smarty.request.username}    // 等价于 $_REQUEST['username']

访问常量和系统文件信息

通过 {$smarty.const} 对象,模板可以直接调用PHP中定义的全局常量或魔术常量,例如获取当前执行文件的路径。

{$smarty.const.__FILE__}    // 输出当前执行的 PHP 文件路径
{$smarty.const.CONST_VAR}   // 访问通过 define() 定义的常量

获取服务器时间戳

利用 {$smarty.now} 保留变量结合 Smarty 的日期格式化修饰符,可以灵活地在模板中显示当前服务器时间。

{$smarty.now|date_format:"%Y-%m-%d %H:%M:%S"}

上述语法等同于 PHP 脚本中的 date('Y-m-d H:i:s', time())。

读取配置文件变量

当使用 Smarty 的配置文件功能时,有两种方式在模板中获取配置项的值:

  • 使用定界符:{#配置变量名#}
  • 使用保留变量:{$smarty.config.配置变量名}

这两种方法均支持带命名空间的区域配置变量。

捕获块(capture)的数据

capture 函数用于将模板输出的内容存储到内存变量中,而非直接打印到页面。在 {capture name="name"} 和 {/capture} 之间的所有内容将被保存。

若未指定 name 属性,默认使用 "default"。存储后的变量可通过以下保留变量访问:

{$smarty.capture.name}

遍历循环上下文信息

$smarty.foreach 保留变量用于在 foreach 循环内部获取循环的状态信息。这在需要判断“第一项”、“最后一项”或获取循环总数时非常有用。具体用法可参考 Smarty 关于 foreachelse 的官方文档。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表