1
我跑了一個問題,我無法解釋我的代碼。我能想到的唯一的事情就是魔法方法在ArrayObjects中不起作用。例如,考慮下面的類:魔法方法在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;
我是瘋了還是這是一個已知的問題?
很有意思。所以我必須覆蓋部分ArrayAccess接口,而不是使用ArrayObjects的普通魔術方法。我將不得不嘗試一下。讓我覺得我應該實現一個ArrayAccess接口,而不是擴展ArrayObject。 – dqhendricks
從ArrayObject正常擴展的好處是,你不需要輸入那麼多的東西,而已經擁有了你所需要的全部東西:) – hakre