smarty注册函数

第一次使用php smarty模板开发,要在html代码里面使用php函数,网上的一些手册使用的的register_function方法来注册函数,而我使用的模板版本是3.1.4,在官网上已经改为了使用register_plugin方法。
在官网的document里面找了个例子,照着写了一个。代码没有报错,但是使用了注册函数以后的html代码就是不显示了。
开始使用的方法是:
php里面:$smatry->registerPlugin('function', 'funMyFun', 'myFun');
function myFun($arg1, $arg2) {}
html里面:{funMyFun arg1=$arg1 arg2=$arg2}
仔细看了官网上的例子,发现他在函数里面使用的变量名称,和传入的参数名是一致的,且只有一个参数,多参数的例子没有。看了些资料,函数写法是function a($param){$b=$param['a'];},可知,传入的参数是一个数组,即多个参数时,smarty将所有数组都放入了一个数组作为一个参数传入。
其他的代码不变,只需将函数修改一下即可正常使用。


function myFun($params) {
    extract($param);
    //这样就可以使用html里传入的$arg1...$argn了,{funMyFun arg1=1 arg2=2}
}

你可能感兴趣的:(smarty注册函数)