【问题标题】:Smarty syntax error: variable in my variableSmarty 语法错误:我的变量中的变量
【发布时间】:2015-09-20 05:52:54
【问题描述】:

我对 Smarty 有意见。我必须引用具有特定键的数组。让我解释。此字符串包含我想要的

{$array1.something[$key].id}

同时这个另一个包含 key

{$array2.something[$key].id}

我想以这种方式将它们结合起来:

{$array1.something[$array2.something[$key].id].id}

相信我,它在 PHP 中运行良好,但我无法在 Smary 中翻译此逻辑,因为它给了我一个致命错误。

致命错误:Smarty 错误 - 语法错误:无法识别的标签:Smarty.class.php 中的 $array1.something[$array2.something[$key].id].id(Smarty_Compiler.class.php,第 448 行)第 1094 行

让我试着用一个例子让它更简单。

1. {$array2.something[$key].id} returns 18 (the key)
2. {$array1.something[$array2.something[$key].id].id} then would be {$array1.something[18].id} 
3. {$array1.something[18].id} should return 999 (the value) but instead of this it gives me a fatal error

如您所知,这只是一个语法错误。我应该如何写这个声明?

【问题讨论】:

  • 它应该是{$array1.something[{$array2.something[$key].id}].id},或者如果不是,那么试试$key1 = {$array2.something[$key].id}; {$array1.something[$key1].id};

标签: php arrays smarty


【解决方案1】:

检查{assign}http://www.smarty.net/docs/en/language.function.assign.tpl

使keyVal = 18

{assign "keyVal" $array1.something[$key].id}

然后输出你想要的值

{$array1.something[$keyVal].id}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-26
    • 2022-06-15
    • 2011-03-25
    • 1970-01-01
    • 2013-04-17
    • 1970-01-01
    • 2015-08-02
    • 1970-01-01
    相关资源
    最近更新 更多