説明できないコードの問題に遭遇しました。私が考えることができる唯一のことは、魔法のメソッドは ArrayObjects 内では機能しないということです。たとえば、次のクラスがあるとします。
class foo extends ArrayObject {
public $bar = '@@@';
public function __construct() {
parent::__construct(array(), ArrayObject::ARRAY_AS_PROPS);
}
public function __get($prop) {
return '@@@';
}
}
次の行で、「Notice: Undefined index: test ...」というエラーが表示されます。
$foo = new foo();
echo $foo->test;
それでも、これらの行は正常に機能します。
$foo = new foo();
echo $foo->bar;
私は気が狂っていますか、それとも既知の問題ですか?