0

我在 PHP 中有一个动态生成的 Smarty 变量。我想用 name 访问它,

例如,有一个智能变量 {$asdf} 是动态生成的,我有一个包含“asdf”的数组,我想使用这个数组并访问 {$asdf}。

{$asdf} prints a input element [rendered] ;  
 $array = array('asdf');
{foreach from=$array item=x}
       {$x} 
{/foreach}

//但是 {$x} 没有给出 renderend 输入,而是给出了 $asdf

我哪里错了?

4

1 回答 1

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}

然而,我不能再重复一遍,将这样的逻辑放在模板中通常是不好的做法。

于 2013-11-13T20:10:15.580 回答