我想在smarty中使用变量变量。我知道我们可以在PHP中使用它。但是我找不到在Smarty模板文件中实现相同效果的任何方法。请考虑以下情形。
我有多个变量,这些变量从PHP文件传递到Smarty tpl文件。所有这些变量名称都有一些相似的模式。例如$test_1
,$test_2
,$test_3
等。
这就是方法,实际上我正在尝试实现它。在这里,$COUNTER
代表1、2、3 ...
{$SELECTED_VALUE = "test_{$COUNTER}"}
{$$SELECTED_VALUE|@print_r}
但是当我尝试将其打印出来时,它给了我错误
Syntax Error in template "test.tpl" on line 127 "{$$SELECTED_VALUE|@print_r}" - Unexpected "$", expected one of: "{" , "identifier"
现在,在PHP中,我可以使用双$$
符号来获取这些变量的值。但是我无法在智能的tpl文件中找到任何方法来实现相同的目的。
我已经浏览了这些链接,但无法理解其中的任何内容。
Variable Variable in Smarty Templates
Dynamics variables in smarty in loop
如果可以的话,请在这里引导我。
答案 0 :(得分:0)
您可以在下面的tpl文件中编写循环 例如,假设$ count = 10;
{for $foo=1 to $count}
<li>{$foo}</li>
{/for}
答案 1 :(得分:0)
好吧,看来我已经找到了解决方案。如上所述,我已经动态创建了这些文件并将它们$test_1
,$test_2
,$test_3
,..分配给了smarty tpl文件。因此,为了动态地使用这些变量,我采用了以下方法。
{for $counter=1 to $total}
{$test_{$counter}}
{/for}
感谢帮助。
答案 2 :(得分:0)
这应该可以满足您的需求:
{$x = ['foo', 'bar']}
{${$x}|print_r}