Chapter 7. 内置函数
Smarty自带了一些内置函数。 这些内置函数是Smarty模板引擎的组成部分。 它们会被编译到PHP代码中,以取得最高的性能。
你不能建立相同名称的自定义函数; 同时你也不需要修改这些内置函数。
少数的内置函数有assign
属性, 可以将函数的结果赋值给模板变量,而不是输出; 效果如同 {assign}
函数。
{$var=…}
{assign}函数的缩写。你可以在模板内对变量进行赋值,或者对数组元素进行赋值。
Note
在模板中进行赋值,从根本上讲还是将程序逻辑放到显示层来进行了,在PHP端进行此操作会更好。请自行考虑。
下面是该标签的属性:
属性:
参数名称 | 缩写 | 类型 | 必选参数 | 默认值 | 说明 |
---|---|---|---|---|---|
scope | n/a | string | No | n/a | 变量的作用范围: 'parent','root' 或 'global' |
可选标记:
名称 | 说明 |
---|---|
nocache | 对赋值操作不进行缓存 |
- {$name='Bob'}
- The value of $name is {$name}.
输出:
- The value of $name is Bob.
- {$running_total=$running_total+$some_array[row].some_value}
- {$user.name="Bob"}
- {$user.name.first="Bob"}
- {$users[]="Bob"}
在包含的模板内赋值的变量,在包含模板内可见。
- {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"}
- ...
原文: https://www.smarty.net/docs/zh_CN/language.builtin.functions.tpl