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

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

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 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。