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}
我想在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}