如何访问从Smarty中的函数返回的数组?

时间:2015-05-16 22:44:26

标签: php arrays smarty

我有一个非常复杂的对象$obj。它有一个方法getDim($subObjId),它返回一个数组。

在PHP中,我可以通过$obj->getDim(1)['height']访问数组。 (我认为这可以从PHP 5.5开始)

现在我想在Smarty中做同样的事情,因为对象有很多属性,我不想将整个对象转换成数组。

但我找不到合适的语法。上面的示例是否有相同的智能语法?

我尝试过(没有成功):

{$obj->getDim(1).height}
{$obj->getDim(1)[height]}
{($obj->getDim(1))[height]}
{($obj->getDim(1)).height}
{$obj->getDim(1)->height}

然而,目前我使用

{$dim = $obj->getDim(1)}{$dim.height}

这很好用,但我想摆脱任务步骤。

修改

我的问题的背景看起来更像是这样:

{foreach $listOfIds as $id}
   {for $i = 0 to $obj->getDim($id).height step 10}
      ...
   {/for}
{/foreach}

1 个答案:

答案 0 :(得分:1)

我不确定这是否仍然是一件事,因为我很长一段时间没有使用过Smarty而且它似乎有点滥用但是有php标签

{php} echo $obj->getDim(1).height; {/php}

http://www.smarty.net/docs/en/language.function.php.tpl