我有以下聪明的结构(我已经删除了不必要的检查和可视化):
[4] {$vip_comments = array()}
{foreach from=$comments item=comment}
{include file="layouts/comments_deepscan.htm" show_only=$comment.id vip_id=$comment.id}
{/foreach}
[3] {$vip_comments|print_r:true}
comments_deepscan 结构看起来像这样(我已经删除了不必要的检查和可视化):
{foreach from=$comments item=comment}
{if $comment.access_level == 5}
[1] {$vip_comments[$vip_id] = true}
[2] {$vip_comments|print_r:true}
{break}
{/if}
{include file="layouts/comments_deepscan.htm" show_only=$comment.id vip_id=$vip_id}
{/foreach}
在某些示例中,[1] 和 [2] 行已被调用,因此$vip_comments如下所示:
Array ( [10446] => 1 )
但是,当循环完成时,第 [3] 行给了我一个空数组。我认为,$vip_comments在深度扫描循环中不可见,因此它创建了一个新的空数组并将数据推入其中。我试图将它作为这样的参考传递(但它不起作用):
{include file="layouts/comments_deepscan.htm" show_only=$comment.id vip_id=$comment.id vip_comments=&$vip_comments}
如何在第 [4] 行的$vip_comments数组中推送元素?