在使用的smarty的时候,有时候需要用到一些复杂的修饰,但是其本身提供的标签比较少,
不过其提供了一个注册的动态注册的功能,还是挺好用的!
$smarty->register_function("date_now", "print_current_date");
function print_current_date ($params) {
extract($params);
if(empty($format))
$format="%b %e, %Y";
echo strftime($format,time());
}
让我们看看smarty是怎么处理的
我们定义了一个函数名叫print_current_date,并且把它注册为date_now。
{date_now format=”%Y/%m/%d”}
其中format是参数(这个名字决定你在注册函数中引用的参数的名字)。
在函数中extract($params);是必须的~实参的名字可以任意定义。
其实smarty传过来的是一个数组,你需要用extract一下.这时在使用这个值。
这样我们就注册了一个smarty函数。
那如果传递两个以上的参数呢?
其实也很简单{date_now arg1=”1″ arg2=”2″ arg3=”3″}
smarty把它们都分装成数组。
print_r($params);
Array ([arg1]=>1 [arg2]=>2 [arg3]=>3)
就是这么简单~ just easy just use~ this is smarty~