我在PHP中有一个动态生成的Smarty变量。我想用名称
访问它比如说有一个动态生成的智能变量{$ asdf},我有一个'asdf'数组,我想使用这个数组并访问{$ asdf}。
{$asdf} prints a input element [rendered] ;
$array = array('asdf');
{foreach from=$array item=x}
{$x}
{/foreach}
//但是{$ x}没有给出渲染输入,而是给出了$ asdf
我哪里错了?
答案 0 :(得分:0)
在模板文件中执行此类工作通常是不典型的。你应该尽可能地分离你的模板和逻辑 - 没有合理的场景,你不能简单地在php中为模板准备所需的变量,并将它们传递给可用结构中的模板。
那说,有可能。在模板中,传递给模板的所有变量都可以在数组Smarty::_tpl_vars
中访问。在模板中,可以使用{php}{/php}
标记与此数组进行交互,可以通过$this
引用它 -
{php}
$unknownValue = $this->_tpl_vars[
$this->_tpl_vars['known_key']
];
// for example...
$this->_tpl_vars['magicalValue'] = $unknownValue;
{/php}
Magic: {$magicalValue}
但是,我不能重申,将这样的逻辑放在模板中通常是不好的做法。