SPL ArrayObject を拡張しようとしていますが、ちょっとした問題が発生しました。変更されていない ArrayObject を使用すると、次のコードが機能します。
$a = new ArrayObject();
$a[1][2] = 'abc';
print_r($a);
この出力が得られます:
ArrayObject Object
(
[storage:ArrayObject:private] => Array
(
[1] => Array
(
[2] => abc
)
)
)
ただし、ArrayObject を拡張して offsetGet メソッドをオーバーロードすると、
class ExtendedArray extends ArrayObject {
function offsetGet($i) {
return parent::offsetGet($i);
}
}
$a = new ExtendedArray();
$a[1][2] = 'abc';
print_r($a);
その後、次のように失敗します。
ExtendedArray Object
(
[storage:ArrayObject:private] => Array
(
)
)
拡張クラスを多次元配列で機能させるには何が必要ですか?