Smarty模板变量嵌套:如何动态获取变量值?
smarty 模板变量嵌套
在 smarty 模板中,变量可以嵌套使用,以动态获取其他变量的值。当变量名包含变量时,可以使用以下语法:
{${变量名}}
问题示例
在问题中,需要在变量 $value 中动态获取变量 $class_name_cn 和 $class_name_en 的值,具体取决于 $key 的值。使用 {$key} 直接引用不正确,应使用以下语法:
{$'class_name_'.${$key}}
示例代码
将问题中的示例代码修改如下:
$lang_list = [ 'cn' => ['desc' => '中文'], 'en' => ['desc' => '英文']];{foreach from=$lang_list item="lang" key="key"} <input name="class_name_{$key}" type="text" value="{$'class_name_'.${$key}}" />{/foreach}
这样,在 foreach 循环中,当 $key 为 cn 时,{$'class_name_'.${$key}} 将展开为 {$class_name_cn},而当 $key 为 en 时,将展开为 {$class_name_en}。