Maison > développement back-end > tutoriel php > Smarty注册函数,请指点

Smarty注册函数,请指点

WBOY
Libérer: 2016-06-23 13:52:04
original
794 Les gens l'ont consulté

请问smarty注册函数问题。

$smarty->register_function('dateline', 'handle_dateline'); //这是注册函数 ,第一个参数是什么意思?

function handle_dateline($params, &$smarty) {} //这是被注册函数 ,这2个参数是什么意思?

注册函数是不是会导致函数执行?是不是类似于调用函数?


回复讨论(解决方案)

$smarty->register_function(' dateline', 'handle_dateline'); 
dateline 是在模板里使用的名字

{dateline  time="$time" format="Y-m-d"}
而不是
{handle_dateline  time="$time" format="Y-m-d"}
呵呵,自己找罪受

function handle_dateline($params, &$smarty) {}
$params 传入的参数数组,比如上例中就有两个元素
函数体你可能会这样写
extract($params);
echo date($format,$time);

$smarty smarty 对象本身,因为你有可能需要在函数体内访问 $smarty 的属性和方法

$smarty->register_function(' dateline', 'handle_dateline'); 
dateline 是在模板里使用的名字

{dateline  time="$time" format="Y-m-d"}


hello,这样说的话,
$smarty->register_function('dateline', 'handle_dateline'); 
并没有传递任何参数给function handle_dateline($params, &$smarty) {}??
注册函数上面的语句,会不会导致函数 “function handle_dateline($params, &$smarty) {} ” 执行?

不会执行,它只是注册了一个函数,需要你在模板中调用时才会执行,参数也是此时传递的。

不会执行,它只是注册了一个函数,需要你在模板中调用时才会执行,参数也是此时传递的。


参数是在调用时候才会传递的 ,也就是说跟注册函数无关。那注册函数到底有什么用??难道只是为了让它的值在tpl中显示吗? 

注册的目的是让 smarty 找到他,不然就会出错!

说白了,它就是注册一个函数,让你在tpl调用。

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal