动态获取Smarty变量

时间:2013-09-09 07:44:09

标签: php smarty prestashop

我有这些变量:

$idben47    Smarty_Variable Object (3)
->value = "0.00"
->nocache = false
->scope = "Smarty root"
$idben48    Smarty_Variable Object (3)
->value = "120.00"
->nocache = false
->scope = "Smarty root"
$idben49    Smarty_Variable Object (3)
->value = "0.00"
->nocache = false
->scope = "Smarty root"

这些变量在此处指定:

$this->context->smarty->assign('idben'.$row['id_product_attribute'], $combinations[$row['id_product_attribute']]['unit_impact']);

如何在tpl文件中动态获取这些内容?

在我的tpl文件中,我已经有了$ id_attribute变量(在这种情况下为47,48,49)。 我正在尝试做这样的事情:

<span>Prezzo:{$idben.id_attribute}</span>

但系统没有得到变量......

提前谢谢

3 个答案:

答案 0 :(得分:1)

如果允许更改$idbenxy变量,则可以将它们放在数组中。

// PHP
$idben = array($idben0, $idben1, ... , $idben49);
// HTML
<span>Prezzo:{$idben[$id_attribute]}</span>

答案 1 :(得分:0)

请参阅variable variables

我手边没有PHP安装,但我认为${'idben'.$id_attribute}是正确的。

答案 2 :(得分:0)

使用cat:

{${'idben'|cat:$id_attribute}}

如果您要多次使用变量内部的值,并且为了清晰起见,您需要在每次需要值时创建一个新的时间变量,而不是在每次需要值时组成变量名称。或者其他什么)使用它:

{$curridben= ${'idben'|cat:$id_attribute}}

然后只是

<span>Prezzo:{$curridben.value}</span>