Home > Backend Development > PHP Tutorial > Smarty注册函数,请指点

Smarty注册函数,请指点

WBOY
Release: 2016-06-23 13:52:04
Original
795 people have browsed it

请问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调用。

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template