Smarty输出动态变量

时间:2018-07-24 13:48:14

标签: php variables smarty

我的目标是为数学方程式分配一个动态变量(称为技能),如下所示:

$skill_HULK = 5, $skill_MAC = 2, ...

所以我做到了

${math assign="skill_`$sk->skill_abbreviation`" equation="x * y" x=1 y=2}

其中

$sk->skill_abbreviation returns HULK and MAC (foreach loop).

但是如何输出变量的结果? 我尝试使用“ eval”,但是它只显示我变量的名称。 如果我这样做:

{eval var="sk_`$sk->skill_abbreviation`"}

它将输出例如skill_MAC而不是2。

有人可以帮我吗?谢谢

1 个答案:

答案 0 :(得分:0)

不确定这是您要寻找的东西,但是请看一下:

PHP:

$smarty->assign("skill_abbreviation", "HULK");
$smarty->assign("skill_HULK", 5);
$smarty->assign("skill_MAC", 2);
$smarty->display('index.tpl');

模板:

{$skill_{$skill_abbreviation}}
// or
{assign var='myVar' value=$skill_{$skill_abbreviation}}
{$myVar}

结果:

5
// or
5


或者您可以在循环中运行它:

PHP:

$smarty->assign("skill_abbreviations", ["HULK", "MAC"]);
$smarty->assign("skill_HULK", 5);
$smarty->assign("skill_MAC", 2);

模板:

{foreach from=$skill_abbreviations item=abbr}
  {$skill_{$abbr}}
{/foreach}

结果:

  5
  2