- 默认地,你的函数实现会被Smarty调用两次:一次是在开始标签,另一次是在闭合标签(参考下面的&$repeat关于怎样改变这种设置)。
- 只有块函数的开始标签具有属性。所有属性包含在作为关联数组的$params变量中,经由模板传递给模板函数。当处理闭合标签时,函数同样可访问开始标签的属性。
- $content变量值取决于你的函数是被开始标签调用还是被闭合标签调用。假如是开始标签,变量值将为NULL,如果是闭合标签,$content变量值为模板块的内容。请注意这时模板块已经被Smarty处理过,因此你所接收到的是模板的输出而不是模板资源。
- &$repeat变量为true,在随后的所有块函数(闭合标签)调用中其值始终为false。函数每次执行返回的&$repeat值为true时,{func} .. {/func}之间的内容会被求值,同时参数$content里的新块内容会再次调用执行函数(译注:运行方法有点类似递归函数)。
如果你嵌套了块函数,可以通过$smarty->_tag_stack变量访问找出父块函数。只须对块函数运行一下var_dump(),函数结构就可以一目了然了。
翻译
搜索
复制
标签:调用,函数,标签,闭合,smarty,content,使用,模板 From: https://www.cnblogs.com/haokan/p/18226247