Smarty 图标

您可以根据商标通知使用 Smarty 标识。

Smarty Template Engine Smarty Template Engine

如果您有赞助、广告、新闻或其他咨询,请通过以下方式联系我们

使用 Smarty 的网站

广告

第 7 章 内置函数

Smarty 附带了几个内置函数。这些内置函数是 Smarty 模板引擎的组成部分。它们被编译成相应的内联 PHP 代码,以实现最佳性能。

你不能使用与这些内置函数相同的名称来创建你自己的自定义函数;并且你也不需要修改内置函数。

其中一些函数有一个assign 属性,它将该函数的结果收集到一个已命名的模板变量,而不是作为输出;这与 {assign}函数非常相似。

{$var=...}

这是{assign}函数的简写版本。你可以直接向模板分配值,也可以向数组元素分配值。

注意

在模板中分配变量本质上是将应用程序逻辑置于表示层中,这可能更适合在 PHP 中处理。请酌情使用。

下列属性可以添加到标签中

属性

属性名称 简写 类型 是否必需 默认值 描述
scope 不适用 字符串 不适用 已分配变量的范围:“父”、“根”或“全局”

选项标记

名称 描述
nocache 分配具有“nocache”属性的变量

示例 7.1. 简单分配

{$name='Bob'}

The value of $name is {$name}.

  

上述示例将输出

The value of $name is Bob.

  

示例 7.2. 含数学运算的分配

{$running_total=$running_total+$some_array[row].some_value}

  

示例 7.3. 分配数组元素

{$user.name="Bob"}

  

示例 7.4. 分配多维数组元素

{$user.name.first="Bob"}

  

示例 7.5. 追加数组

{$users[]="Bob"}

  

示例 7.6. 在调用模板的范围内进行分配

在包含的模板中分配的变量将在包含模板中可见。

{include file="sub_template.tpl"}
...
{* display variable assigned in sub_template *}
{$foo}<br>
...

  

上述模板包含以下示例 sub_template.tpl

...
{* foo will be known also in the including template *}
{$foo="something" scope=parent}
{* bar is assigned only local in the including template *}
{$bar="value"}
...


另请参阅 {assign}{append}