Smarty中如何使用Variable变量?

How to use Variable variables in Smarty?

我想在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 中,我可以使用双 $$ 符号获取这些变量的值。但是我无法找到任何方法来在 smarty tpl 文件中实现相同的目的。

我浏览了这些链接,但无法理解其中的任何内容。

Variable Variable in Smarty Templates

Dynamics variables in smarty in loop

如果可能的话,请在这里指导我。

你可以在下面的tpl文件中写一个循环 例如,假设 $count = 10;

     {for $foo=1 to $count}
          <li>{$foo}</li>
     {/for}

好的,看来我找到了解决办法。正如我上面提到的,我有这些动态创建并分配给 $test_1$test_2$test_3、.... 到 smarty tpl 文件。因此,为了动态地使用这些变量,我采取了以下方法。

{for $counter=1 to $total}
      {$test_{$counter}}
 {/for}

感谢您的帮助。

这应该能满足您的需求:

{$x = ['foo', 'bar']}
{${$x}|print_r}