i bu basit sınıf vardır:
class A
{
var $children=array();
function &__get($name)
{
if($name==="firstChild")
{
if(count($this->children)) $ret=&$this->children[0];
else $ret=null;
}
return $ret;
}
}
Hiçbir çocuk varsa "firstChild" özelliğine erişerek onun ilk referans olarak çocuk veya boş dönmesi gerekir.
$a=new A;
$c=&$a->firstChild;
Şimdi sınıfı en az bir çocuğu varsa o inşaat büyük ama (ve null değerinin dönmesi gerekir) değilse o hatayı "aşırı mülkiyet Dolaylı değişiklik" tetikler.
Bu neden olur? Peki bu "Dolaylı değişiklik" olduğunu şey değiştirmeye çalışıyorum değilim? I referans işaretini kaldırırsanız ve neden ($c=$a->firstChild;
) çalışıyor?