我早就对Im的问题做了简短的演示。 这确实是我如何执行,但似乎会产生同样的结果。
<?php
class mainclass {
var $vardata = array();
function &__get ($var) {
if ($this->vardata[$var]) return $this->vardata[$var];
if ($var == foo ) return $this->_loadFoo();
return NULL;
}
function __set ($var, $val) {
$this->vardata[$var] = $val;
}
function __unset($var) {
unset($this->vardata[$var]);
}
}
class extender extends mainclass {
function __construct() {
var_dump($this->foo);
$this->_loadFoo();
echo <br> ;
var_dump($this->foo);
}
function _loadFoo () {
unset($this->foo);
$this->foo = array();
$this->foo[] = apples ;
$this->foo[] = oranges ;
$this->foo[] = pears ;
return $this->foo;
}
}
$test = new extender;
?>
上述法典的产出是:
array(3) { [0]=> string(6) "apples" [1]=> string(7) "oranges" [2]=> string(5) "pears" }
array(5) { [0]=> string(6) "apples" [1]=> string(7) "oranges" [2]=> string(5) "pears" [3]=> string(7) "oranges" [4]=> string(5) "pears" }
如我所期望的那样:
array(3) { [0]=> string(6) "apples" [1]=> string(7) "oranges" [2]=> string(5) "pears" }
array(3) { [0]=> string(6) "apples" [1]=> string(7) "oranges" [2]=> string(5) "pears" }
......植被、__和__功能都在正确的地方被召唤,因此,我预计第二个功能是,直接要求该功能只是 un开 $本和gt,并用同样的数据再次填充。 计算这一变数时,会得出同样的产出。 相反,它最终完成上述工作......用三条直截了两条,并保持原先三套护法。
也许只是 mistake误或误解超负荷职能——要么如此,现在我就坐在这里太久了,因此,我们非常赞赏任何帮助!