变量修饰符可以用于变量,定制函数或字符串。使用修饰符的方法是,指定一个变量,然后是|(管道符),再是修饰符名。修饰符可以接受额外的参数以影响其行为。这些参数跟随在修饰符名后,并以:(分号)分割。另外,所有PHP函数都可以隐式的用作修饰符(详见后文),而修饰符是可以组合的。
如果你对一个数组变量而不是一个值变量应用修饰符,那么该修饰符将作用于该数组中的每个值。如果你希望修饰符作用在整个数组如同一个值那样,那么你必须在该修饰符名前加一个@符号。
例子:{$articleTitle|@count} - 将使用PHP的count()作为修饰符打印出数组$articleTitle中元素的数量。
所有的PHP函数都可以隐式的用作修饰符,如上面的例子所示。但是,用PHP函数作为修饰符有两个小小的问题:
首先,有时函数参数的顺序不是那么直观。例如,这样格式化$foo:{"%2.f"|sprintf:$foo}是可行的,但是需要更多的想象力,而Smarty提供的{$foo|string_format:"%2.f"}会更直观。
其次,如果$security设置为开,那么需要用作修饰符的所有PHP函数都必须在$security_settings数组的MODIFIER_FUNCS元素中声明为可信任的。