我的代码遇到了一个我无法解释的问题。我唯一能想到的是魔法方法在 ArrayObjects 中不起作用。例如,给定以下类:
class foo extends ArrayObject {
public $bar = '@@@';
public function __construct() {
parent::__construct(array(), ArrayObject::ARRAY_AS_PROPS);
}
public function __get($prop) {
return '@@@';
}
}
以下几行给了我一个错误“注意:未定义的索引:测试......”
$foo = new foo();
echo $foo->test;
然而这些行工作正常:
$foo = new foo();
echo $foo->bar;
我疯了还是这是一个已知问题?