【发布时间】:2010-10-06 14:19:33
【问题描述】:
我有这个简单的课程:
class A
{
var $children=array();
function &__get($name)
{
if($name==="firstChild")
{
if(count($this->children)) $ret=&$this->children[0];
else $ret=null;
}
return $ret;
}
}
通过访问“firstChild”属性,它应该通过引用返回其第一个孩子,如果没有孩子,则返回 null。
$a=new A;
$c=&$a->firstChild;
现在,如果该类至少包含一个子类,它工作得很好,但如果它不包含(并且它应该返回 null)它会触发错误“间接修改重载属性”。
为什么会这样?我不想修改任何东西,那么“间接修改”是什么?为什么如果我删除参考符号 ($c=$a->firstChild;) 它会起作用?
【问题讨论】:
标签: php class properties overloading