PHP模板引擎Smarty保留变量详解
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 的官方文档。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













