smarty-Smarty是否支持可变变量吗

smarty-Smarty是否支持可变变量吗

浮生未歇 发布于 2016-12-15 字数 233 浏览 1209 回复 5

模板文件里面一个变量名是来自另外一个变量的的值,请问在Smarty里面如何写?
假如:{$lang[menu.$temp]},这想写是不对的,请问在smarty里面如何实现这种可变的变量名(由于是改以前的代码,不方便在php程序进行处理)。

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

虐人心 2017-07-27 5 楼

{${$var}} 正确写法

想挽留 2017-06-03 4 楼

直接在smarty里这样写就ok
{assign var=data value=$cout.data}//这里是在smarty里设置一个变量,其中$cout.data是你在php里的变量

下面就可以直接用这个变量了,比如
{section name=list1 loop=$data[list]}

归属感 2017-02-01 3 楼

PHP中可变变量类似这种形式:$$value
在Smarty没试过,你可以试试。

清晨说ぺ晚安 2017-01-10 2 楼

你可以在smarty中注册一个函数,也可以根据$temp来判断显示不同的值。

泛泛之交 2017-01-09 1 楼

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}%>