Smarty为foreach添加了不必要的数字?

时间:2013-12-07 09:16:52

标签: smarty

我正在调试一个变量:

{foreach from=$menuItems item=row}
{$row|@print_r}
{/foreach}

打印

Array ([parent_id] => 0) 1 Array ( [parent_id] => 5)
到目前为止一切顺利。我必须迭代它,但

{foreach from=$menuItems item=row}
{$row.parent_id|@print_r}
{/foreach}

01 51 01

似乎在数字后面添加了一个不必要的数字“1”。跆拳道?

1 个答案:

答案 0 :(得分:1)

我已经检查过了。

在PHP中我有:

$name = array();
$name[] = array('parent_id' => 0);
$name[] = array('parent_id' => 5);
$smarty->assign('menuItems',$name);

在Smarty,我有:

{foreach from=$menuItems item=row}
{$row|@print_r}
{/foreach}
<br />

{foreach from=$menuItems item=row}
{$row.parent_id|@print_r}
{/foreach}

输出是:

Array ( [parent_id] => 0 ) 1 Array ( [parent_id] => 5 ) 1
01 51 

因此它可以像预期的那样工作。我在Smarty 3.1.18中对它进行了测试。可能在早期版本中存在一些错误。从那时起有很多修复 - https://code.google.com/p/smarty-php/source/browse/trunk/distribution/change_log.txt