0

在阅读内置 {call}-function 的 smarty 文档(链接到特定文档页面)时,我看到了这个代码片段(它是文档的一个示例):

{function name=menu level=0}
  <ul class="level{$level}">
  {foreach $data as $entry}
    {if is_array($entry)}
      <li>{$entry@key}</li>
      {call name=menu data=$entry level=$level+1}
    {else}
      <li>{$entry}</li>
    {/if}
  {/foreach}
  </ul>
{/function}

我对这个表达感到困惑

$entry@key

有人可以解释一下它是如何工作的吗?

谢谢!

4

1 回答 1

0

$variable@key是一种可在块中使用{foreach}特殊语法,它将循环本身的“属性”与保存循环当前值的变量相关联。

在 Smarty 2 中,您必须说$smarty.foreach.name_of_foreach_block.name_of_property,而 Smarty 3 将其简化为$variable_from_loop@property.

在给出的示例中,您还可以使用类似的{if $entry@iteration is odd}class="odd"{else}class="even"},或更复杂的版本,如手册页中所示

于 2013-06-16T21:27:35.650 回答