|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2005-07-21 10:23 UTC] tony2001@php.net
[2005-07-21 11:51 UTC] helly@php.net
[2005-07-22 13:26 UTC] stochnagara at hotmail dot com
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Mon Oct 27 13:00:01 2025 UTC |
Description: ------------ When I extend the ArrayObject class, I cannot override any of the functions offsetXXX. Also when using var_dump i see only "Array" element and I don't see my new public property $name. I suppose the second thing is a bug. But the first one is maybe a feature that one cannot override internal PHP functions. Reproduce code: --------------- <? class AO2 extends ArrayObject { public $name; public function offsetGet ($index) { echo "Calling offsetGet for index $index\n"; return parent::offsetGet ($index); } } $a = new AO2(); $a->name = "123"; $a[5] = 'Hi'; echo "a[5] = {$a[5]}\n";; echo "a->name = {$a->name}\n";; var_dump($a); ?> Expected result: ---------------- Calling offsetGet for index 5 a[5] = Hi a->name = 123 object(AO2)#1 (1) { [5]=> string(2) "Hi" ["name"]=> string(3) "123" } Actual result: -------------- a[5] = Hi a->name = 123 object(AO2)#1 (1) { [5]=> string(2) "Hi" }