<?php
include "../smarty.inc.php";
$smarty->assign("data","hello");
/*
* 注册一个函数
* */
$smarty->registerPlugin("function","show","show");
/*
* 注册一个块
*
* */
$smarty->registerPlugin("block","tell","tell");
$smarty->display("fun.html");
function show($args)
{
echo '$smarty->register_Plugin(function,show,show)';
}
function tell($args,$content)
{
for($i=0;$i<$args['num'];$i++)
echo $content."<br>";
}
/*
* 在以前的版本里面注册函数和块是两个不同的函数,现在都是一个 registerPlugin 了,里面的第一个参数是指明注册的类型,
* 如果是 registerPlugion('function ') 则表明注册是一个函数,而regiterPlugin("blok")则注册是一个块
*
* 在注册的函数内,前台页面调用 的时候是以标签的形式调用 的,而标签的属性都是以一个数组的形式传递到函数的参数
* ,所以要在函数里面得到传递过来的参数,就要用 args['属性名']如果参数得了,那么函数也就由你自己发挥了
*
*
* 其实块与函数都是一样,只不过是注册函数时,参数数 是registerPlugin('block')罢了.
* 不过还要注意一点,在前台标签调用的时候,传递的不再只是标签属性了,块嘛. 当家还有块里面的
* 内容了
*
* 所以两个函数的书写格式应该是
* function show($args){} //参数只是用于传递标签属性
*
* function tell($args,$content) //args 接收标签属性,而$content接收的是块里面的内容
*
* 前台调用形式:
* {show num=10}
</br>
<font color='red'>下面是块的调用</font>
{tell num=5}
$smarty->registerPlugin(block,tell,tell);
{/tell}
*
*
* */
?>
Smarty 函数注册
最新推荐文章于 2021-03-11 01:13:23 发布