1

这一行:

{$data["bank_data"]["Arrangement"]["id"]}

返回以下错误:

PHP (5.3.9) 错误 (E_USER_ERROR):
文件:Smarty.class.php
行:1092
类型:Smarty 错误:[在 tke-g-admin_scopeofwork.tpl 第 10 行]:语法错误:无法识别的标签:$data["bank_data "]["排列"]["id"](Smarty_Compiler.class.php,第 446 行)

这一行:

{$data.bank_data.Arrangement.id}

不返回错误。它工作正常。

那么,为什么第一部分是错误的?如何使用[]访问数组。

4

1 回答 1

1

从您发布的错误来看,您使用的是 Smarty2。文档为您提供了两种访问数组的选项:

{* for string indexes *}
{$some.array.value}
{* for numeric indexes *}
{$some[0][1]}

您可以使用变量来提供这样的索引

{assign var="key" value="array"}
{$some.$key.value} == {$some.array.value}

使用该“技巧”,您还可以访问包含“特殊字符”的字符串索引,例如.,[].


Smarty3 以这种方式更灵活一些:

{$some.{"hello world"}.array["array"]['foo']}

奇怪的{$foo[bar]}是没有正确解析(在 Smarty 3.1.10 中)。不过,把它放在待办事项列表上。

于 2012-06-29T15:47:16.447 回答