smarty-Smarty是否支持可变变量吗
模板文件里面一个变量名是来自另外一个变量的的值,请问在Smarty里面如何写?
假如:{$lang[menu.$temp]},这想写是不对的,请问在smarty里面如何实现这种可变的变量名(由于是改以前的代码,不方便在php程序进行处理)。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
{${$var}} 正确写法
直接在smarty里这样写就ok
{assign var=data value=$cout.data}//这里是在smarty里设置一个变量,其中$cout.data是你在php里的变量
下面就可以直接用这个变量了,比如
{section name=list1 loop=$data[list]}
PHP中可变变量类似这种形式:$$value
在Smarty没试过,你可以试试。
你可以在smarty中注册一个函数,也可以根据$temp来判断显示不同的值。
Smarty提供了一个assign可以在smarty里定义变量,所以只要把得到的值赋值给一个变量,然后就可以使用可变变量了。以下是我经过测试后的代码,你拿去调试看看吧。
PHP代码
$country = array("en", "cn");
$lang = array('menu_en'=> 'english', "menu_cn" => "chinese");
$smarty->assign("country", $country);
$smarty->assign("lang", $lang);
smarty代码
<%{foreach name=k item=con from=$country}%>
<%{assign var="key" value="menu_$con"}%>
<%{$lang[$key]}%>
<%{/foreach}%>