smarty中调用函数
使用分支或循环标签时,支持执行php函数。
比如循环 :
assign("test","1,2,3");
{#foreach json_decode("[$test]",true) as $key=>$val #}
{#$val#}
{#/foreach#}
使用 if 时:
assign("test",array("1"));
{#if count($test)>0#}
111
{#/if#}
从某个版本开始【低级过低确实不可以,要用 | 修饰符写法,若特殊函数如count还要写成 |@count】,可以直接调函数,并可执行代码片段。注意和开始标签之间,不要有空格。{#$myTest(3)#},不能写成{# $myTest(3) #}
//测试1
assign("test",array("1"));
{#json_encode($test)#}
//测试2
function myTest($a,$b){
return $a+$b;
}
{#myTest(3,4)#}
//测试3
{#count($test)#}
//测试4,执行代码片段
{#$aa = json_decode("[$test]",true)#}
{#foreach $aa as $key=>$val#}
{#$val#}
{#/foreach#}
注意必须是注册的函数才可以,比如$_GET,$_POST并不是注册进来的。不过也能获取,是通过 $smarty.get 。
{$smarty.get.page} {* PHP方式:$_GET[“page”] *}
{$smarty.post.page} {* PHP方式:$_POST[“page”] *}
{$smarty.cookies.username} {* PHP方式:$_COOKIE[“username”] *}
{$smarty.session.id} {* PHP方式:$_SESSION[“id”] *}
{$smarty.server.SERVER_NAME} {* PHP方式:$_SERVER[“SERVER_NAME”] *}
{$smarty.env.PATH} {* PHP方式:$_ENV[“PATH”]*}
{$smarty.request.username} {* PHP方式:$_REQUEST[“username”] *}
{$smarty.const._MY_CONST_VAL} {* 输出PHP脚本中自定义的常量 *}
{$smarty.const._MY_CONST_VAL} {* 输出PHP脚本中自定义的常量 *}
{$smarty.const.__FILE__} {* 通过保留变量数组直接输出系统常量 *}
文章作者: 朱丰华
文章链接: https://smart.52dixiaowo.com/blog/post-313.html
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。