{$smarty}保留变量

    PHP保留{
$smarty}变量可以用来存取若干环境变量和请求变量。完整的列表如下。
请求变量

    请求变量诸如
$_GET$_POST$_COOKIE$_SERVER$_ENV和$_SESSION(参见$request_vars_order及$request_use_auto_globals)的存取方式如下例所示:

例子4
-7. 显示请求变量

{
* 显示URL中的page值($_GET)http://www.example.com/index.php?page=foo *}
{$smarty.get.page}

{
* 显示来自一个表单的"page"变量($_POST['page'])*}
{
$smarty.post.page}

{
* 显示COOKIE变量"username"的值($_COOKIE['username'])*}
{
$smarty.cookies.username}

{
* 显示服务器变量"SERVER_NAME"$_SERVER['SERVER_NAME'])*}
{
$smarty.server.SERVER_NAME}

{
* 显示系统环境变量"PATH" *}
{
$smarty.env.PATH}

{
* 显示PHP会话变量"id"$_SESSION['id'])*}
{
$smarty.session.id}

{
* 显示变量"username",不论来自get/post/cookies/server/env *}
{
$smarty.request.username}

    注意:基于历史原因,{
$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>

{
$smarty.now}

    当前的时间戳可以由{
$smarty.now}来存取。返回值反映了自从所谓的元年(1970年1月1日)以来所经过的秒数,从而可以直接传递给日期格式修饰符进行显示。注意每次调用时都会调用time()函数。例如,一个脚本用了3秒执行完毕,那么在该脚本的开始和结束时所调用的$smarty.now将显示3秒的差异。

{
* 使用date_format修饰符来显示当前日期和时间 *}
{
$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}

{
$smarty.capture}

    通过内建的{capture}
..{/capture}函数而捕获的模板输出可以由{$smarty.capture}访问。更多信息请参见{capture}页。
{
$smarty.config}

    {
$smarty.config}变量可以用来访问调入的配置变量。{$smarty.config.foo}是{#foo#}的等同用法。更多信息请参见{config_load}页。
{$smarty.section},{$smarty.foreach}

    {
$smarty.section}和{$smarty.foreach}变量分别用来访问{section}和{foreach}循环属性。它们有一些非常有用的值,如.first,.index等。
{
$smarty.template}

    返回当前处理的模板名。下面的例子展示了container
.tpl和它包含的banner.tpl,各自都有{$smarty.template}变量。

<b>Main container is {$smarty.template}</b>
{
include file='banner.tpl}

    将输出:

<b>Main page is container.tpl</b>
banner.tpl

{$smarty.version}

    返回编译模板使用的Smarty版本。

<div id="footer">Powered by Smarty {$smarty.version}</div>

{$smarty.ldelim},{$smarty.rdelim}

    这些变量用来打印左分隔符和右分隔符,类似{ldelim},{rdelim}。

    参见赋值的变量以及配置变量。