Yii 1.1并通过引用传递

时间:2014-02-21 05:47:03

标签: php yii

我正在尝试在Yii 1.1上创建一个类别树。

我写了这段代码:

$tree=array();
$results=Category::model()->findAll();

foreach ($results as &$result)
{
    if(empty($result->parent_id))
    {
        $tree[$result->parent_id]=&$result->name;
    }
    else
    {
        $results[$result->parent_id]['childs'][$result->id]=&$result->name;
    }
}

return $tree;

我收到此错误

Indirect modification of overloaded property Category::$name has no effect

为什么呢?我怎么能解决它?

谢谢!

1 个答案:

答案 0 :(得分:0)

为了给出答案为什么会发生这种情况(并且它不是特定的Yii问题,而是一般的PHP): $result->name不是实际变量,而是函数调用的结果。在内部calls $result->__get('name')

PHP只是试图警告你,它认为你做了一些奇怪的事情。 解决方案是将结果分配给变量并使用它。 我知道,很烦人。

话虽如此:你为什么要尝试使用参考文献呢?