{$smarty} 保留变量
可以通过PHP的保留变量 {$smarty}
来访问一些环境变量。 下面是这些变量的列表:
页面请求变量
页面请求变量 如$_GET
, $_POST
, $_COOKIE
, $_SERVER
, $_ENV
和 $_SESSION
可以通过下面的方式来使用:
- {* display value of page from URL ($_GET) http://www.example.com/index.php?page=foo *}
- {$smarty.get.page}
- {* display the variable "page" from a form ($_POST['page']) *}
- {$smarty.post.page}
- {* display the value of the cookie "username" ($_COOKIE['username']) *}
- {$smarty.cookies.username}
- {* display the server variable "SERVER_NAME" ($_SERVER['SERVER_NAME'])*}
- {$smarty.server.SERVER_NAME}
- {* display the system environment variable "PATH" *}
- {$smarty.env.PATH}
- {* display the php session variable "id" ($_SESSION['id']) *}
- {$smarty.session.id}
- {* display the variable "username" from merged get/post/cookies/server/env *}
- {$smarty.request.username}
Note
由于历史愿意,{$SCRIPT_NAME}
变量会作为 {$smarty.server.SCRIPT_NAME}
的缩写。
- <a href="{$SCRIPT_NAME}?page=smarty">click me</a>
- <a href="{$smarty.server.SCRIPT_NAME}?page=smarty">click me</a>
Note
虽然Smarty提供了较方便直接访问PHP超全局变量的方法,但必须谨慎使用。 直接访问超全局变量会弄乱应用程序底层代码和模板语法。 最佳的实践是从PHP将需要的变量对模板进行赋值再使用。
{$smarty.now}
当前的时间戳 可以通过{$smarty.now}
来获取。 时间戳是从1970年1月1日开始计算到当前的秒数。 当前时间戳可以被date_format
修饰器使用并显示。 注意:在每次使用该变量时都会调用time()
函数。 比如说一个程序花了三秒来执行,在开头和结束时都调用了$smarty.now
,那么这两个数值将差三秒。
- {* use the date_format modifier to show current date and time *}
- {$smarty.now|date_format:'%Y-%m-%d %H:%M:%S'}
{$smarty.const}
直接访问PHP的常量。参见 smarty 常量.
- <?php
- // the constant defined in php
- define('MY_CONST_VAL','CHERRIES');
- ?>
在模板中显示常量
- {$smarty.const.MY_CONST_VAL}
Note
虽然Smarty有较方便直接访问PHP常量的方法。但这通常会弄乱应用程序底层代码和模板语法。最佳的实践是从PHP将需要的变量对模板进行赋值再使用。
{$smarty.capture}
Smarty内置函数 {capture}..{/capture}
可以捕获其中的代码输出。 通过{$smarty.capture}
变量可以使用这些输出的代码。 参见 {capture}
函数。
{$smarty.config}
{$smarty.config}
变量可以获取 配置变量。 {$smarty.config.foo}
可获取设置变量的 {#foo#}
。参见 {config_load}。
{$smarty.section}
{$smarty.section}
变量是{section}
循环中的属性。 它提供了一些很有用的值,如 .first
, .index
等等。
Note
{$smarty.foreach}
变量在新的{foreach}
语法中已经不再使用。但仍然支持Smarty 2.x 风格的 foreach 语法。
{$smarty.template}
返回当前的模板名称(不带目录名)。
{$smarty.template_object}
返回当前模板对象。
{$smarty.current_dir}
返回当前模板的目录名称。
{$smarty.version}
返回编译当前模板的Smarty版本。
- <div id="footer">由 Smarty {$smarty.version} 引擎驱动</div>
{$smarty.block.child}
返回子模板提供的区块代码。 参见模板继承。
{$smarty.block.parent}
返回父模板提供的区块代码。 参见模板继承。
{$smarty.ldelim}, {$smarty.rdelim}
用于显示左定界符和右定界符。等同于 {ldelim},{rdelim}
。
原文: https://www.smarty.net/docs/zh_CN/language.variables.smarty.tpl