register_function()
register_function() -- 动态注册模板函数插件
描述
void
register_function ( string name, mixed impl [, bool cacheable [, mixed cache_attrs]])
传递入模板函数名,后面是实现它的PHP函数。
PHP回调函数可以是:
- 包含函数name的字符串
-
一个数组,形如array(&$object, $method),其中&$object是对象的引用,而$method是包含方法名的字符串
-
一个数组,形如array(&$class, $method),其中$class是类名,而$method是类的方法。
大多数情况下,cache_attrs可以被忽略。其正确用法参见控制插件输出的可缓存性。
例子13-1. register_function()
<?php $smarty->register_function('date_now', 'print_current_date');
function print_current_date($params, &$smarty) { if(empty($params['format'])) { $format = "%b %e, %Y"; } else { $format = $params['format']; } return strftime($format,time()); } ?>
|
而模板为
{date_now}
{* 或者用另一种格式 *}
{date_now format="%Y/%m/%d"} |
|
参见unregister_function()以及模板函数一节。