diff --git a/Zend/tests/bug27798.phpt b/Zend/tests/bug27798.phpt index 310fd97991c..c16c5c825d4 100644 --- a/Zend/tests/bug27798.phpt +++ b/Zend/tests/bug27798.phpt @@ -57,12 +57,12 @@ array(3) { } Child::__construct array(3) { - ["Baz"]=> - int(4) ["Foo"]=> int(1) ["Bar"]=> int(2) + ["Baz"]=> + int(4) } array(1) { ["Foo"]=> diff --git a/Zend/tests/bug60536_003.phpt b/Zend/tests/bug60536_003.phpt index 3ba23b9288e..8696591bb2c 100644 --- a/Zend/tests/bug60536_003.phpt +++ b/Zend/tests/bug60536_003.phpt @@ -32,14 +32,14 @@ var_dump($b); ?> --EXPECTF-- object(SubclassA)#%d (2) { - ["hello":"SubclassA":private]=> - int(0) ["hello":"BaseWithPropA":private]=> int(0) + ["hello":"SubclassA":private]=> + int(0) } object(SubclassB)#%d (2) { - ["hello":"SubclassB":private]=> - int(0) ["hello":"BaseWithTPropB":private]=> int(0) + ["hello":"SubclassB":private]=> + int(0) } diff --git a/Zend/tests/bug79862.phpt b/Zend/tests/bug79862.phpt index b923da78b46..a04dc5c9ac7 100644 --- a/Zend/tests/bug79862.phpt +++ b/Zend/tests/bug79862.phpt @@ -45,14 +45,14 @@ NULL NULL NULL object(c)#1 (6) { - ["prop1"]=> - int(1) - ["prop2":protected]=> - int(2) ["prop3":"a":private]=> int(3) ["prop4":"a":private]=> int(4) + ["prop1"]=> + int(1) + ["prop2":protected]=> + int(2) ["prop5"]=> int(5) ["prop6"]=> diff --git a/Zend/tests/get_mangled_object_vars.phpt b/Zend/tests/get_mangled_object_vars.phpt index 735548579e2..f9ad008a33c 100644 --- a/Zend/tests/get_mangled_object_vars.phpt +++ b/Zend/tests/get_mangled_object_vars.phpt @@ -33,10 +33,10 @@ echo "\n"; ?> --EXPECT-- array ( - '' . "\0" . 'B' . "\0" . 'priv' => 4, 'pub' => 1, '' . "\0" . '*' . "\0" . 'prot' => 2, '' . "\0" . 'A' . "\0" . 'priv' => 3, + '' . "\0" . 'B' . "\0" . 'priv' => 4, 'dyn' => 5, 6 => 6, ) diff --git a/Zend/tests/objects_033.phpt b/Zend/tests/objects_033.phpt index 3c198644901..edb722b0401 100644 --- a/Zend/tests/objects_033.phpt +++ b/Zend/tests/objects_033.phpt @@ -24,5 +24,5 @@ print_r($a, true); var_dump($a < $b); ?> --EXPECT-- -bool(false) -bool(false) +bool(true) +bool(true) diff --git a/Zend/tests/traits/property008.phpt b/Zend/tests/traits/property008.phpt index ff265be2a02..d4d57f379af 100644 --- a/Zend/tests/traits/property008.phpt +++ b/Zend/tests/traits/property008.phpt @@ -42,20 +42,20 @@ var_dump($b); ?> --EXPECT-- object(SubclassClassicInheritance)#1 (2) { - ["hello":"SubclassClassicInheritance":private]=> - int(0) ["hello":"BaseWithPropA":private]=> int(0) + ["hello":"SubclassClassicInheritance":private]=> + int(0) } object(SubclassA)#2 (2) { - ["hello":"SubclassA":private]=> - int(0) ["hello":"BaseWithPropA":private]=> int(0) + ["hello":"SubclassA":private]=> + int(0) } object(SubclassB)#3 (2) { - ["hello":"SubclassB":private]=> - int(0) ["hello":"BaseWithTPropB":private]=> int(0) + ["hello":"SubclassB":private]=> + int(0) } diff --git a/Zend/zend_object_handlers.c b/Zend/zend_object_handlers.c index b903afb8ba5..94d2ff8cf44 100644 --- a/Zend/zend_object_handlers.c +++ b/Zend/zend_object_handlers.c @@ -63,41 +63,24 @@ ZEND_API void rebuild_object_properties(zend_object *zobj) /* {{{ */ if (!zobj->properties) { zend_property_info *prop_info; zend_class_entry *ce = zobj->ce; - uint32_t flags = 0; + int i; zobj->properties = zend_new_array(ce->default_properties_count); if (ce->default_properties_count) { zend_hash_real_init_mixed(zobj->properties); - ZEND_HASH_FOREACH_PTR(&ce->properties_info, prop_info) { - if (!(prop_info->flags & ZEND_ACC_STATIC)) { - flags |= prop_info->flags; + for (i = 0; i < ce->default_properties_count; i++) { + prop_info = ce->properties_info_table[i]; - if (UNEXPECTED(Z_TYPE_P(OBJ_PROP(zobj, prop_info->offset)) == IS_UNDEF)) { - HT_FLAGS(zobj->properties) |= HASH_FLAG_HAS_EMPTY_IND; - } - - _zend_hash_append_ind(zobj->properties, prop_info->name, - OBJ_PROP(zobj, prop_info->offset)); + if (!prop_info) { + continue; } - } ZEND_HASH_FOREACH_END(); - if (flags & ZEND_ACC_CHANGED) { - while (ce->parent && ce->parent->default_properties_count) { - ce = ce->parent; - ZEND_HASH_FOREACH_PTR(&ce->properties_info, prop_info) { - if (prop_info->ce == ce && - !(prop_info->flags & ZEND_ACC_STATIC) && - (prop_info->flags & ZEND_ACC_PRIVATE)) { - zval zv; - if (UNEXPECTED(Z_TYPE_P(OBJ_PROP(zobj, prop_info->offset)) == IS_UNDEF)) { - HT_FLAGS(zobj->properties) |= HASH_FLAG_HAS_EMPTY_IND; - } - - ZVAL_INDIRECT(&zv, OBJ_PROP(zobj, prop_info->offset)); - zend_hash_add(zobj->properties, prop_info->name, &zv); - } - } ZEND_HASH_FOREACH_END(); + if (UNEXPECTED(Z_TYPE_P(OBJ_PROP(zobj, prop_info->offset)) == IS_UNDEF)) { + HT_FLAGS(zobj->properties) |= HASH_FLAG_HAS_EMPTY_IND; } + + _zend_hash_append_ind(zobj->properties, prop_info->name, + OBJ_PROP(zobj, prop_info->offset)); } } } @@ -1555,6 +1538,7 @@ ZEND_API int zend_std_compare_objects(zval *o1, zval *o2) /* {{{ */ } if (!zobj1->properties && !zobj2->properties) { zend_property_info *info; + int i; if (!zobj1->ce->default_properties_count) { return 0; @@ -1570,14 +1554,18 @@ ZEND_API int zend_std_compare_objects(zval *o1, zval *o2) /* {{{ */ } Z_PROTECT_RECURSION_P(o1); - ZEND_HASH_FOREACH_PTR(&zobj1->ce->properties_info, info) { - zval *p1 = OBJ_PROP(zobj1, info->offset); - zval *p2 = OBJ_PROP(zobj2, info->offset); + for (i = 0; i < zobj1->ce->default_properties_count; i++) { + zval *p1, *p2; - if (info->flags & ZEND_ACC_STATIC) { + info = zobj1->ce->properties_info_table[i]; + + if (!info) { continue; } + p1 = OBJ_PROP(zobj1, info->offset); + p2 = OBJ_PROP(zobj2, info->offset); + if (Z_TYPE_P(p1) != IS_UNDEF) { if (Z_TYPE_P(p2) != IS_UNDEF) { int ret; @@ -1597,7 +1585,7 @@ ZEND_API int zend_std_compare_objects(zval *o1, zval *o2) /* {{{ */ return 1; } } - } ZEND_HASH_FOREACH_END(); + } Z_UNPROTECT_RECURSION_P(o1); return 0; diff --git a/ext/date/tests/DateTimeZone_clone_basic2.phpt b/ext/date/tests/DateTimeZone_clone_basic2.phpt index b41eeddfbdd..f7f81cb275a 100644 --- a/ext/date/tests/DateTimeZone_clone_basic2.phpt +++ b/ext/date/tests/DateTimeZone_clone_basic2.phpt @@ -51,28 +51,28 @@ object(DateTimeZoneExt1)#%d (4) { string(13) "Europe/London" } object(DateTimeZoneExt2)#%d (6) { - ["property3"]=> - bool(true) - ["property4"]=> - float(10.5) ["property1"]=> int(99) ["property2"]=> string(5) "Hello" + ["property3"]=> + bool(true) + ["property4"]=> + float(10.5) ["timezone_type"]=> int(3) ["timezone"]=> string(13) "Europe/London" } object(DateTimeZoneExt2)#%d (6) { - ["property3"]=> - bool(true) - ["property4"]=> - float(10.5) ["property1"]=> int(99) ["property2"]=> string(5) "Hello" + ["property3"]=> + bool(true) + ["property4"]=> + float(10.5) ["timezone_type"]=> int(3) ["timezone"]=> diff --git a/ext/date/tests/DateTime_clone_basic2.phpt b/ext/date/tests/DateTime_clone_basic2.phpt index 261879283ed..439bf4b23f6 100644 --- a/ext/date/tests/DateTime_clone_basic2.phpt +++ b/ext/date/tests/DateTime_clone_basic2.phpt @@ -55,14 +55,14 @@ object(DateTimeExt1)#%d (5) { string(3) "GMT" } object(DateTimeExt2)#%d (7) { - ["property3"]=> - bool(true) - ["property4"]=> - float(10.5) ["property1"]=> int(99) ["property2"]=> string(5) "Hello" + ["property3"]=> + bool(true) + ["property4"]=> + float(10.5) ["date"]=> string(26) "2009-02-03 12:34:41.000000" ["timezone_type"]=> @@ -71,14 +71,14 @@ object(DateTimeExt2)#%d (7) { string(3) "GMT" } object(DateTimeExt2)#%d (7) { - ["property3"]=> - bool(true) - ["property4"]=> - float(10.5) ["property1"]=> int(99) ["property2"]=> string(5) "Hello" + ["property3"]=> + bool(true) + ["property4"]=> + float(10.5) ["date"]=> string(26) "2009-02-03 12:34:41.000000" ["timezone_type"]=> diff --git a/ext/dom/tests/dom003.phpt b/ext/dom/tests/dom003.phpt index 20db09d40eb..d846995db52 100644 --- a/ext/dom/tests/dom003.phpt +++ b/ext/dom/tests/dom003.phpt @@ -30,6 +30,8 @@ object(DOMException)#%d (%d) { string(23) "Hierarchy Request Error" ["string":"Exception":private]=> string(0) "" + ["code"]=> + int(3) ["file":protected]=> string(%d) "%sdom003.php" ["line":protected]=> @@ -57,8 +59,6 @@ object(DOMException)#%d (%d) { } ["previous":"Exception":private]=> NULL - ["code"]=> - int(3) } --- Don't catch exception with try/catch diff --git a/ext/dom/tests/dom_set_attr_node.phpt b/ext/dom/tests/dom_set_attr_node.phpt index 6160cd48f21..bb573ffda0b 100644 --- a/ext/dom/tests/dom_set_attr_node.phpt +++ b/ext/dom/tests/dom_set_attr_node.phpt @@ -40,6 +40,8 @@ object(DOMException)#%d (7) { string(20) "Wrong Document Error" ["string":"Exception":private]=> string(0) "" + ["code"]=> + int(4) ["file":protected]=> string(%d) "%sdom_set_attr_node.php" ["line":protected]=> @@ -67,6 +69,4 @@ object(DOMException)#%d (7) { } ["previous":"Exception":private]=> NULL - ["code"]=> - int(4) } diff --git a/ext/mysqli/tests/mysqli_stmt_bind_result_references.phpt b/ext/mysqli/tests/mysqli_stmt_bind_result_references.phpt index 8ac3a049a16..91a8c0a556f 100644 --- a/ext/mysqli/tests/mysqli_stmt_bind_result_references.phpt +++ b/ext/mysqli/tests/mysqli_stmt_bind_result_references.phpt @@ -291,23 +291,23 @@ string(1) "a" reference, object, forward declaration... int(1) object(bar)#%d (2) { - ["bar"]=> - &string(1) "a" ["foo"]=> &string(1) "a" + ["bar"]=> + &string(1) "a" } string(1) "a" references, object, private... int(1) string(1) "a" object(mega_bar)#5 (4) { + ["foo"]=> + &string(1) "a" + ["bar"]=> + &string(1) "a" [%s]=> &int(1) ["id_ref"]=> &int(1) - ["bar"]=> - &string(1) "a" - ["foo"]=> - &string(1) "a" } done! diff --git a/ext/pdo/tests/pdo_005.phpt b/ext/pdo/tests/pdo_005.phpt index 25eab7782fc..1427028a9fc 100644 --- a/ext/pdo/tests/pdo_005.phpt +++ b/ext/pdo/tests/pdo_005.phpt @@ -114,40 +114,40 @@ TestDerived::__construct(2,3) array(3) { [0]=> object(TestDerived)#%d (5) { - ["row":protected]=> - int(0) ["id"]=> string(1) "1" ["val":protected]=> string(1) "A" ["val2":"TestBase":private]=> NULL + ["row":protected]=> + int(0) ["val2"]=> string(2) "AA" } [1]=> object(TestDerived)#%d (5) { - ["row":protected]=> - int(1) ["id"]=> string(1) "2" ["val":protected]=> string(1) "B" ["val2":"TestBase":private]=> NULL + ["row":protected]=> + int(1) ["val2"]=> string(2) "BB" } [2]=> object(TestDerived)#%d (5) { - ["row":protected]=> - int(2) ["id"]=> string(1) "3" ["val":protected]=> string(1) "C" ["val2":"TestBase":private]=> NULL + ["row":protected]=> + int(2) ["val2"]=> string(2) "CC" } diff --git a/ext/pdo/tests/pdo_018.phpt b/ext/pdo/tests/pdo_018.phpt index d35e078b32d..de033823535 100644 --- a/ext/pdo/tests/pdo_018.phpt +++ b/ext/pdo/tests/pdo_018.phpt @@ -206,9 +206,9 @@ array(4) { ===INSERT=== TestBase::serialize() = 'a:3:{s:7:"BasePub";s:6:"Public";s:7:"BasePro";s:9:"Protected";s:7:"BasePri";s:7:"Private";}' TestDerived::serialize() -TestBase::serialize() = 'a:5:{s:7:"BasePub";s:13:"DerivedPublic";s:7:"BasePro";s:16:"DerivdeProtected";s:10:"DerivedPub";s:6:"Public";s:10:"DerivedPro";s:9:"Protected";s:7:"BasePri";s:7:"Private";}' +TestBase::serialize() = 'a:5:{s:7:"BasePub";s:13:"DerivedPublic";s:7:"BasePro";s:16:"DerivdeProtected";s:7:"BasePri";s:7:"Private";s:10:"DerivedPub";s:6:"Public";s:10:"DerivedPro";s:9:"Protected";}' TestDerived::serialize() -TestBase::serialize() = 'a:5:{s:7:"BasePub";s:13:"DerivedPublic";s:7:"BasePro";s:16:"DerivdeProtected";s:10:"DerivedPub";s:6:"Public";s:10:"DerivedPro";s:9:"Protected";s:7:"BasePri";s:7:"Private";}' +TestBase::serialize() = 'a:5:{s:7:"BasePub";s:13:"DerivedPublic";s:7:"BasePro";s:16:"DerivdeProtected";s:7:"BasePri";s:7:"Private";s:10:"DerivedPub";s:6:"Public";s:10:"DerivedPro";s:9:"Protected";}' ===DATA=== array(4) { [0]=> @@ -216,9 +216,9 @@ array(4) { [1]=> string(91) "a:3:{s:7:"BasePub";s:6:"Public";s:7:"BasePro";s:9:"Protected";s:7:"BasePri";s:7:"Private";}" [2]=> - string(172) "a:5:{s:7:"BasePub";s:13:"DerivedPublic";s:7:"BasePro";s:16:"DerivdeProtected";s:10:"DerivedPub";s:6:"Public";s:10:"DerivedPro";s:9:"Protected";s:7:"BasePri";s:7:"Private";}" + string(172) "a:5:{s:7:"BasePub";s:13:"DerivedPublic";s:7:"BasePro";s:16:"DerivdeProtected";s:7:"BasePri";s:7:"Private";s:10:"DerivedPub";s:6:"Public";s:10:"DerivedPro";s:9:"Protected";}" [3]=> - string(172) "a:5:{s:7:"BasePub";s:13:"DerivedPublic";s:7:"BasePro";s:16:"DerivdeProtected";s:10:"DerivedPub";s:6:"Public";s:10:"DerivedPro";s:9:"Protected";s:7:"BasePri";s:7:"Private";}" + string(172) "a:5:{s:7:"BasePub";s:13:"DerivedPublic";s:7:"BasePro";s:16:"DerivdeProtected";s:7:"BasePri";s:7:"Private";s:10:"DerivedPub";s:6:"Public";s:10:"DerivedPro";s:9:"Protected";}" } ===FAILURE=== Exception:SQLSTATE[HY000]: General error: cannot unserialize class @@ -238,22 +238,22 @@ array(3) { ["name"]=> string(11) "TestDerived" ["val"]=> - string(172) "a:5:{s:7:"BasePub";s:13:"DerivedPublic";s:7:"BasePro";s:16:"DerivdeProtected";s:10:"DerivedPub";s:6:"Public";s:10:"DerivedPro";s:9:"Protected";s:7:"BasePri";s:7:"Private";}" + string(172) "a:5:{s:7:"BasePub";s:13:"DerivedPublic";s:7:"BasePro";s:16:"DerivdeProtected";s:7:"BasePri";s:7:"Private";s:10:"DerivedPub";s:6:"Public";s:10:"DerivedPro";s:9:"Protected";}" } [2]=> array(2) { ["name"]=> NULL ["val"]=> - string(172) "a:5:{s:7:"BasePub";s:13:"DerivedPublic";s:7:"BasePro";s:16:"DerivdeProtected";s:10:"DerivedPub";s:6:"Public";s:10:"DerivedPro";s:9:"Protected";s:7:"BasePri";s:7:"Private";}" + string(172) "a:5:{s:7:"BasePub";s:13:"DerivedPublic";s:7:"BasePro";s:16:"DerivdeProtected";s:7:"BasePri";s:7:"Private";s:10:"DerivedPub";s:6:"Public";s:10:"DerivedPro";s:9:"Protected";}" } } ===FETCHCLASS=== TestBase::unserialize(a:3:{s:7:"BasePub";s:6:"Public";s:7:"BasePro";s:9:"Protected";s:7:"BasePri";s:7:"Private";}) TestDerived::unserialize() -TestBase::unserialize(a:5:{s:7:"BasePub";s:13:"DerivedPublic";s:7:"BasePro";s:16:"DerivdeProtected";s:10:"DerivedPub";s:6:"Public";s:10:"DerivedPro";s:9:"Protected";s:7:"BasePri";s:7:"Private";}) +TestBase::unserialize(a:5:{s:7:"BasePub";s:13:"DerivedPublic";s:7:"BasePro";s:16:"DerivdeProtected";s:7:"BasePri";s:7:"Private";s:10:"DerivedPub";s:6:"Public";s:10:"DerivedPro";s:9:"Protected";}) TestDerived::unserialize() -TestBase::unserialize(a:5:{s:7:"BasePub";s:13:"DerivedPublic";s:7:"BasePro";s:16:"DerivdeProtected";s:10:"DerivedPub";s:6:"Public";s:10:"DerivedPro";s:9:"Protected";s:7:"BasePri";s:7:"Private";}) +TestBase::unserialize(a:5:{s:7:"BasePub";s:13:"DerivedPublic";s:7:"BasePro";s:16:"DerivdeProtected";s:7:"BasePri";s:7:"Private";s:10:"DerivedPub";s:6:"Public";s:10:"DerivedPro";s:9:"Protected";}) array(3) { [0]=> object(TestBase)#%d (3) { @@ -270,14 +270,14 @@ array(3) { string(14) "#DerivedPublic" ["BasePro":protected]=> string(17) "#DerivdeProtected" + ["BasePri":"TestBase":private]=> + string(8) "#Private" ["DerivedPub"]=> string(7) "#Public" ["DerivedPro":protected]=> string(10) "#Protected" ["DerivedPri":"TestDerived":private]=> string(7) "Private" - ["BasePri":"TestBase":private]=> - string(8) "#Private" } [2]=> object(TestLeaf)#%d (6) { @@ -285,13 +285,13 @@ array(3) { string(14) "#DerivedPublic" ["BasePro":protected]=> string(17) "#DerivdeProtected" + ["BasePri":"TestBase":private]=> + string(8) "#Private" ["DerivedPub"]=> string(7) "#Public" ["DerivedPro":protected]=> string(10) "#Protected" ["DerivedPri":"TestDerived":private]=> string(7) "Private" - ["BasePri":"TestBase":private]=> - string(8) "#Private" } } diff --git a/ext/pdo/tests/pdo_023.phpt b/ext/pdo/tests/pdo_023.phpt index 834c99309e6..ee38f98cac1 100644 --- a/ext/pdo/tests/pdo_023.phpt +++ b/ext/pdo/tests/pdo_023.phpt @@ -95,10 +95,10 @@ PDOStatementX::__destruct() PDODatabaseX::query() PDOStatementX::__construct() object(PDOStatementX)#%d (3) { - ["test1"]=> - int(1) ["queryString"]=> string(24) "SELECT val, id FROM test" + ["test1"]=> + int(1) ["test2"]=> int(22) } diff --git a/ext/soap/tests/classmap003.phpt b/ext/soap/tests/classmap003.phpt index 3150c4be81a..c7ea7a02ddf 100644 --- a/ext/soap/tests/classmap003.phpt +++ b/ext/soap/tests/classmap003.phpt @@ -49,6 +49,6 @@ print_r($client->f()); --EXPECT-- B Object ( - [y] => 6 [x] => 5 + [y] => 6 ) diff --git a/ext/standard/tests/array/array_fill_object.phpt b/ext/standard/tests/array/array_fill_object.phpt index 58fd5326321..b7b6d348f55 100644 --- a/ext/standard/tests/array/array_fill_object.phpt +++ b/ext/standard/tests/array/array_fill_object.phpt @@ -235,25 +235,25 @@ array(2) { array(2) { [0]=> object(Child_test1)#%d (4) { - ["member2"]=> - int(102) ["member1"]=> int(100) ["var1"]=> int(30) ["var2"]=> int(101) + ["member2"]=> + int(102) } [1]=> object(Child_test1)#%d (4) { - ["member2"]=> - int(102) ["member1"]=> int(100) ["var1"]=> int(30) ["var2"]=> int(101) + ["member2"]=> + int(102) } } -- Iteration 4 -- @@ -281,25 +281,25 @@ array(2) { array(2) { [0]=> object(Child_test2)#%d (4) { - ["member1":"Child_test2":private]=> - int(102) + ["member1":"Test2":private]=> + int(100) ["var1"]=> int(30) ["var2"]=> int(101) - ["member1":"Test2":private]=> - int(100) + ["member1":"Child_test2":private]=> + int(102) } [1]=> object(Child_test2)#%d (4) { - ["member1":"Child_test2":private]=> - int(102) + ["member1":"Test2":private]=> + int(100) ["var1"]=> int(30) ["var2"]=> int(101) - ["member1":"Test2":private]=> - int(100) + ["member1":"Child_test2":private]=> + int(102) } } -- Iteration 6 -- @@ -369,25 +369,25 @@ array(2) { array(2) { [0]=> object(Child_test4)#%d (4) { - ["var1"]=> - int(103) ["member1"]=> int(100) ["member2":"Test4":private]=> int(101) ["member3":protected]=> int(102) + ["var1"]=> + int(103) } [1]=> object(Child_test4)#%d (4) { - ["var1"]=> - int(103) ["member1"]=> int(100) ["member2":"Test4":private]=> int(101) ["member3":protected]=> int(102) + ["var1"]=> + int(103) } } -- Iteration 10 -- diff --git a/ext/standard/tests/array/array_filter_object.phpt b/ext/standard/tests/array/array_filter_object.phpt index 9b10d20aea3..0c2b175e25e 100644 --- a/ext/standard/tests/array/array_filter_object.phpt +++ b/ext/standard/tests/array/array_filter_object.phpt @@ -105,10 +105,10 @@ array(5) { } [2]=> object(ChildClass)#%d (2) { - ["var3":"ChildClass":private]=> - NULL ["var2":protected]=> int(5) + ["var3":"ChildClass":private]=> + NULL } [3]=> object(FinalClass)#%d (1) { @@ -130,10 +130,10 @@ array(5) { } [2]=> object(ChildClass)#%d (2) { - ["var3":"ChildClass":private]=> - NULL ["var2":protected]=> int(5) + ["var3":"ChildClass":private]=> + NULL } [3]=> object(FinalClass)#%d (1) { diff --git a/ext/standard/tests/array/array_unshift_object.phpt b/ext/standard/tests/array/array_unshift_object.phpt index 1feda5bf966..02abff3d1e4 100644 --- a/ext/standard/tests/array/array_unshift_object.phpt +++ b/ext/standard/tests/array/array_unshift_object.phpt @@ -173,10 +173,10 @@ int(5) array(5) { [0]=> object(ChildClass)#%d (2) { - ["var3":"ChildClass":private]=> - NULL ["var2":protected]=> int(5) + ["var3":"ChildClass":private]=> + NULL } ["f"]=> string(5) "first" @@ -191,10 +191,10 @@ int(7) array(7) { [0]=> object(ChildClass)#%d (2) { - ["var3":"ChildClass":private]=> - NULL ["var2":protected]=> int(5) + ["var3":"ChildClass":private]=> + NULL } [1]=> string(5) "hello" diff --git a/ext/standard/tests/array/uasort_object2.phpt b/ext/standard/tests/array/uasort_object2.phpt index 82a9cb908b1..6217a44b9b1 100644 --- a/ext/standard/tests/array/uasort_object2.phpt +++ b/ext/standard/tests/array/uasort_object2.phpt @@ -146,31 +146,31 @@ bool(true) array(4) { [2]=> object(ChildClass)#%d (2) { - ["child_value"]=> - int(15) ["pub_value"]=> NULL + ["child_value"]=> + int(15) } [0]=> object(ChildClass)#%d (2) { - ["child_value"]=> - int(20) ["pub_value"]=> NULL + ["child_value"]=> + int(20) } [1]=> object(ChildClass)#%d (2) { - ["child_value"]=> - int(500) ["pub_value"]=> NULL + ["child_value"]=> + int(500) } [3]=> object(ChildClass)#%d (2) { - ["child_value"]=> - int(700) ["pub_value"]=> NULL + ["child_value"]=> + int(700) } } Done diff --git a/ext/standard/tests/array/usort_object2.phpt b/ext/standard/tests/array/usort_object2.phpt index cdb91d40277..abc42b736bd 100644 --- a/ext/standard/tests/array/usort_object2.phpt +++ b/ext/standard/tests/array/usort_object2.phpt @@ -129,30 +129,30 @@ bool(true) array(4) { [0]=> object(ChildClass)#%d (2) { - ["child_value"]=> - int(15) ["pub_value"]=> NULL + ["child_value"]=> + int(15) } [1]=> object(ChildClass)#%d (2) { - ["child_value"]=> - int(20) ["pub_value"]=> NULL + ["child_value"]=> + int(20) } [2]=> object(ChildClass)#%d (2) { - ["child_value"]=> - int(500) ["pub_value"]=> NULL + ["child_value"]=> + int(500) } [3]=> object(ChildClass)#%d (2) { - ["child_value"]=> - int(700) ["pub_value"]=> NULL + ["child_value"]=> + int(700) } } diff --git a/ext/standard/tests/class_object/get_object_vars_basic_001.phpt b/ext/standard/tests/class_object/get_object_vars_basic_001.phpt index babd381a08c..8f647ace0b5 100644 --- a/ext/standard/tests/class_object/get_object_vars_basic_001.phpt +++ b/ext/standard/tests/class_object/get_object_vars_basic_001.phpt @@ -84,12 +84,12 @@ array(2) { ---( Superclass: )--- A::test array(3) { + ["hiddenPriv"]=> + string(13) "A::hiddenPriv" ["prot"]=> string(7) "B::prot" ["pub"]=> string(6) "B::pub" - ["hiddenPriv"]=> - string(13) "A::hiddenPriv" } ---( Unrelated class: )--- diff --git a/ext/standard/tests/class_object/get_object_vars_basic_002.phpt b/ext/standard/tests/class_object/get_object_vars_basic_002.phpt index 313a53ac882..5e7ef736f77 100644 --- a/ext/standard/tests/class_object/get_object_vars_basic_002.phpt +++ b/ext/standard/tests/class_object/get_object_vars_basic_002.phpt @@ -48,10 +48,10 @@ array(4) { ---( Superclass: )--- A::testA array(3) { + ["hiddenPriv"]=> + string(13) "A::hiddenPriv" ["prot"]=> string(7) "B::prot" ["pub"]=> string(6) "B::pub" - ["hiddenPriv"]=> - string(13) "A::hiddenPriv" } diff --git a/ext/standard/tests/serialize/__serialize_005.phpt b/ext/standard/tests/serialize/__serialize_005.phpt index 3656a034b36..c65c0cdec8c 100644 --- a/ext/standard/tests/serialize/__serialize_005.phpt +++ b/ext/standard/tests/serialize/__serialize_005.phpt @@ -41,16 +41,16 @@ var_dump(unserialize($s)); --EXPECT-- string(63) "O:1:"B":2:{i:0;a:1:{i:0;O:8:"stdClass":0:{}}i:1;a:1:{i:0;r:3;}}" object(B)#3 (2) { - ["data2":"B":private]=> - array(1) { - [0]=> - object(stdClass)#4 (0) { - } - } ["data":"A":private]=> array(1) { [0]=> object(stdClass)#4 (0) { } } + ["data2":"B":private]=> + array(1) { + [0]=> + object(stdClass)#4 (0) { + } + } } diff --git a/ext/standard/tests/serialize/bug76300.phpt b/ext/standard/tests/serialize/bug76300.phpt index f8636dc9a5e..ef7536e0db9 100644 --- a/ext/standard/tests/serialize/bug76300.phpt +++ b/ext/standard/tests/serialize/bug76300.phpt @@ -25,6 +25,6 @@ print_r($u); --EXPECT-- Derived Object ( - [id:protected] => 44 [id:Base:private] => 64 + [id:protected] => 44 ) diff --git a/ext/standard/tests/serialize/serialization_objects_011.phpt b/ext/standard/tests/serialize/serialization_objects_011.phpt index ba721a3d981..5fbcedd7ec2 100644 --- a/ext/standard/tests/serialize/serialization_objects_011.phpt +++ b/ext/standard/tests/serialize/serialization_objects_011.phpt @@ -97,35 +97,35 @@ Sanity check: bool(true) Before serialization: object(B)#%d (6) { - ["BPriv":"B":private]=> - string(7) "B.BPriv" - ["BProt":protected]=> - string(7) "B.BProt" - ["BPub"]=> - string(6) "B.BPub" ["APriv":"A":private]=> string(7) "A.APriv" ["AProt":protected]=> string(7) "A.AProt" ["APub"]=> string(6) "A.APub" + ["BPriv":"B":private]=> + string(7) "B.BPriv" + ["BProt":protected]=> + string(7) "B.BProt" + ["BPub"]=> + string(6) "B.BPub" } Serialized form: -string(184) "O:1:"B":6:{s:8:"\0B\0BPriv";s:7:"B.BPriv";s:8:"\0*\0BProt";s:7:"B.BProt";s:4:"BPub";s:6:"B.BPub";s:8:"\0A\0APriv";s:7:"A.APriv";s:8:"\0*\0AProt";s:7:"A.AProt";s:4:"APub";s:6:"A.APub";}" +string(184) "O:1:"B":6:{s:8:"\0A\0APriv";s:7:"A.APriv";s:8:"\0*\0AProt";s:7:"A.AProt";s:4:"APub";s:6:"A.APub";s:8:"\0B\0BPriv";s:7:"B.BPriv";s:8:"\0*\0BProt";s:7:"B.BProt";s:4:"BPub";s:6:"B.BPub";}" Unserialized: object(B)#%d (6) { - ["BPriv":"B":private]=> - string(7) "B.BPriv" - ["BProt":protected]=> - string(7) "B.BProt" - ["BPub"]=> - string(6) "B.BPub" ["APriv":"A":private]=> string(7) "A.APriv" ["AProt":protected]=> string(7) "A.AProt" ["APub"]=> string(6) "A.APub" + ["BPriv":"B":private]=> + string(7) "B.BPriv" + ["BProt":protected]=> + string(7) "B.BProt" + ["BPub"]=> + string(6) "B.BPub" } Sanity check: bool(true) @@ -135,51 +135,51 @@ Sanity check: bool(true) Before serialization: object(C)#%d (10) { - ["APriv":"C":private]=> - string(7) "C.APriv" + ["APriv":"A":private]=> + string(7) "A.APriv" ["AProt":protected]=> string(7) "C.AProt" ["APub"]=> string(6) "C.APub" - ["CPriv":"C":private]=> - string(7) "C.CPriv" - ["CProt":protected]=> - string(7) "C.BProt" - ["CPub"]=> - string(6) "C.CPub" ["BPriv":"B":private]=> string(7) "B.BPriv" ["BProt":protected]=> string(7) "B.BProt" ["BPub"]=> string(6) "B.BPub" - ["APriv":"A":private]=> - string(7) "A.APriv" + ["APriv":"C":private]=> + string(7) "C.APriv" + ["CPriv":"C":private]=> + string(7) "C.CPriv" + ["CProt":protected]=> + string(7) "C.BProt" + ["CPub"]=> + string(6) "C.CPub" } Serialized form: -string(302) "O:1:"C":10:{s:8:"\0C\0APriv";s:7:"C.APriv";s:8:"\0*\0AProt";s:7:"C.AProt";s:4:"APub";s:6:"C.APub";s:8:"\0C\0CPriv";s:7:"C.CPriv";s:8:"\0*\0CProt";s:7:"C.BProt";s:4:"CPub";s:6:"C.CPub";s:8:"\0B\0BPriv";s:7:"B.BPriv";s:8:"\0*\0BProt";s:7:"B.BProt";s:4:"BPub";s:6:"B.BPub";s:8:"\0A\0APriv";s:7:"A.APriv";}" +string(302) "O:1:"C":10:{s:8:"\0A\0APriv";s:7:"A.APriv";s:8:"\0*\0AProt";s:7:"C.AProt";s:4:"APub";s:6:"C.APub";s:8:"\0B\0BPriv";s:7:"B.BPriv";s:8:"\0*\0BProt";s:7:"B.BProt";s:4:"BPub";s:6:"B.BPub";s:8:"\0C\0APriv";s:7:"C.APriv";s:8:"\0C\0CPriv";s:7:"C.CPriv";s:8:"\0*\0CProt";s:7:"C.BProt";s:4:"CPub";s:6:"C.CPub";}" Unserialized: object(C)#%d (10) { - ["APriv":"C":private]=> - string(7) "C.APriv" + ["APriv":"A":private]=> + string(7) "A.APriv" ["AProt":protected]=> string(7) "C.AProt" ["APub"]=> string(6) "C.APub" - ["CPriv":"C":private]=> - string(7) "C.CPriv" - ["CProt":protected]=> - string(7) "C.BProt" - ["CPub"]=> - string(6) "C.CPub" ["BPriv":"B":private]=> string(7) "B.BPriv" ["BProt":protected]=> string(7) "B.BProt" ["BPub"]=> string(6) "B.BPub" - ["APriv":"A":private]=> - string(7) "A.APriv" + ["APriv":"C":private]=> + string(7) "C.APriv" + ["CPriv":"C":private]=> + string(7) "C.CPriv" + ["CProt":protected]=> + string(7) "C.BProt" + ["CPub"]=> + string(6) "C.CPub" } Sanity check: bool(true) Done diff --git a/ext/zip/tests/bug38943.phpt b/ext/zip/tests/bug38943.phpt index f079f81153e..26ddfa2cb12 100644 --- a/ext/zip/tests/bug38943.phpt +++ b/ext/zip/tests/bug38943.phpt @@ -28,15 +28,6 @@ array(1) { int(1) } object(myZip)#1 (%d) { - ["test":"myZip":private]=> - int(0) - ["testp"]=> - string(6) "foobar" - ["testarray":"myZip":private]=> - array(1) { - [0]=> - int(1) - } ["lastId"]=> int(-1) ["status"]=> @@ -49,4 +40,13 @@ object(myZip)#1 (%d) { string(0) "" ["comment"]=> string(0) "" + ["test":"myZip":private]=> + int(0) + ["testp"]=> + string(6) "foobar" + ["testarray":"myZip":private]=> + array(1) { + [0]=> + int(1) + } } diff --git a/ext/zip/tests/bug38943_2.phpt b/ext/zip/tests/bug38943_2.phpt index fa2a086b197..25580b57f47 100644 --- a/ext/zip/tests/bug38943_2.phpt +++ b/ext/zip/tests/bug38943_2.phpt @@ -14,15 +14,6 @@ array(1) { int(1) } object(myZip)#1 (%d) { - ["test":"myZip":private]=> - int(0) - ["testp"]=> - string(6) "foobar" - ["testarray":"myZip":private]=> - array(1) { - [0]=> - int(1) - } ["lastId"]=> int(-1) ["status"]=> @@ -35,4 +26,13 @@ object(myZip)#1 (%d) { string(0) "" ["comment"]=> string(0) "" + ["test":"myZip":private]=> + int(0) + ["testp"]=> + string(6) "foobar" + ["testarray":"myZip":private]=> + array(1) { + [0]=> + int(1) + } } diff --git a/tests/classes/clone_003.phpt b/tests/classes/clone_003.phpt index 30d4cc549a4..83326ed5dc6 100644 --- a/tests/classes/clone_003.phpt +++ b/tests/classes/clone_003.phpt @@ -37,20 +37,20 @@ Object test Object ( [p1] => test:1 + [p2] => base:2 [p3] => test:3 [p4] => A [p5] => test:5 - [p2] => base:2 [p6:base:private] => base:6 ) Clown test Object ( [p1] => test:1 + [p2] => base:2 [p3] => test:3 [p4] => A [p5] => clone:5 - [p2] => base:2 [p6:base:private] => base:6 ) Done diff --git a/tests/classes/clone_004.phpt b/tests/classes/clone_004.phpt index 610a00e7023..80f80e220c0 100644 --- a/tests/classes/clone_004.phpt +++ b/tests/classes/clone_004.phpt @@ -40,13 +40,6 @@ echo "Done\n"; --EXPECT-- Original object(test)#1 (2) { - ["b"]=> - array(2) { - [0]=> - int(3) - [1]=> - int(4) - } ["a"]=> array(2) { [0]=> @@ -54,16 +47,16 @@ object(test)#1 (2) { [1]=> int(2) } + ["b"]=> + array(2) { + [0]=> + int(3) + [1]=> + int(4) + } } Clone object(test)#2 (2) { - ["b"]=> - array(2) { - [0]=> - int(3) - [1]=> - int(4) - } ["a"]=> array(2) { [0]=> @@ -71,12 +64,19 @@ object(test)#2 (2) { [1]=> int(2) } + ["b"]=> + array(2) { + [0]=> + int(3) + [1]=> + int(4) + } } Modify object(test)#2 (2) { - ["b"]=> - int(6) ["a"]=> int(5) + ["b"]=> + int(6) } Done diff --git a/tests/classes/constants_basic_004.phpt b/tests/classes/constants_basic_004.phpt index c3df0747a4a..8cbac55dfaf 100644 --- a/tests/classes/constants_basic_004.phpt +++ b/tests/classes/constants_basic_004.phpt @@ -80,6 +80,11 @@ object(B)#%d (1) { } } object(C)#%d (3) { + ["a_b"]=> + array(1) { + ["key"]=> + string(5) "value" + } ["a_c_parent"]=> array(1) { ["key"]=> @@ -90,9 +95,4 @@ object(C)#%d (3) { ["key"]=> string(5) "value" } - ["a_b"]=> - array(1) { - ["key"]=> - string(5) "value" - } } diff --git a/tests/classes/ctor_dtor_inheritance.phpt b/tests/classes/ctor_dtor_inheritance.phpt index bd1414c8b88..5dbb1747065 100644 --- a/tests/classes/ctor_dtor_inheritance.phpt +++ b/tests/classes/ctor_dtor_inheritance.phpt @@ -67,31 +67,31 @@ base Object Testing class derived derived Object ( - [other] => other [name] => init + [other] => other ) base::__construct derived Object ( - [other] => other [name] => base + [other] => other ) derived::__construct derived Object ( - [other] => other [name] => derived + [other] => other ) base::__destruct derived Object ( - [other] => other [name] => derived + [other] => other ) derived::__destruct derived Object ( - [other] => other [name] => derived + [other] => other ) Done diff --git a/tests/classes/inheritance_006.phpt b/tests/classes/inheritance_006.phpt index 6009c35ffc9..35465cc2acb 100644 --- a/tests/classes/inheritance_006.phpt +++ b/tests/classes/inheritance_006.phpt @@ -17,8 +17,8 @@ var_dump(new C); ?> --EXPECTF-- object(C)#%d (2) { - ["c":"B":private]=> - NULL ["c":"A":private]=> NULL + ["c":"B":private]=> + NULL } diff --git a/tests/classes/private_members.phpt b/tests/classes/private_members.phpt index 1b48722dbba..19539cf3743 100644 --- a/tests/classes/private_members.phpt +++ b/tests/classes/private_members.phpt @@ -57,45 +57,45 @@ base::__construct(begin) base::test derived Object ( - [member] => derived::member (default) [member:base:private] => base::member + [member] => derived::member (default) ) derived::test derived Object ( - [member] => derived::member (default) [member:base:private] => base::member + [member] => derived::member (default) ) base::__construct(end) base::test derived Object ( - [member] => derived::member (default) [member:base:private] => base::member + [member] => derived::member (default) ) base::test derived Object ( - [member] => derived::member (default) [member:base:private] => base::member + [member] => derived::member (default) ) derived::test derived Object ( - [member] => derived::member (default) [member:base:private] => base::member + [member] => derived::member (default) ) derived::__construct(end) base::test derived Object ( - [member] => derived::member [member:base:private] => base::member + [member] => derived::member ) derived::test derived Object ( - [member] => derived::member [member:base:private] => base::member + [member] => derived::member ) Done diff --git a/tests/lang/foreachLoopObjects.002.phpt b/tests/lang/foreachLoopObjects.002.phpt index 46bd6f8a378..ed9ce5c94af 100644 --- a/tests/lang/foreachLoopObjects.002.phpt +++ b/tests/lang/foreachLoopObjects.002.phpt @@ -191,17 +191,13 @@ object(C)#%d (5) { --> Using instance of D: in D::doForEachOnThis -string(10) "Original f" -string(10) "Original g" string(10) "Original a" string(10) "Original b" string(10) "Original c" string(10) "Original d" +string(10) "Original f" +string(10) "Original g" object(D)#%d (7) { - ["f":"D":private]=> - string(9) "changed.f" - ["g":protected]=> - string(9) "changed.g" ["a"]=> string(9) "changed.a" ["b"]=> @@ -212,6 +208,10 @@ object(D)#%d (7) { string(9) "changed.d" ["e":"C":private]=> string(10) "Original e" + ["f":"D":private]=> + string(9) "changed.f" + ["g":protected]=> + string(9) "changed.g" } --> Using instance of E: @@ -220,8 +220,8 @@ string(12) "Overridden a" string(12) "Overridden b" string(12) "Overridden c" string(12) "Overridden d" -string(12) "Overridden e" string(10) "Original g" +string(12) "Overridden e" object(E)#%d (8) { ["a"]=> string(9) "changed.a" @@ -231,14 +231,14 @@ object(E)#%d (8) { string(9) "changed.c" ["d":protected]=> string(9) "changed.d" - ["e":"E":private]=> - string(9) "changed.e" + ["e":"C":private]=> + string(10) "Original e" ["f":"D":private]=> string(10) "Original f" ["g":protected]=> string(9) "changed.g" - ["e":"C":private]=> - string(10) "Original e" + ["e":"E":private]=> + string(9) "changed.e" } @@ -266,17 +266,13 @@ object(C)#%d (5) { --> Using instance of D: in C::doForEachC -string(10) "Original g" string(10) "Original a" string(10) "Original b" string(10) "Original c" string(10) "Original d" string(10) "Original e" +string(10) "Original g" object(D)#%d (7) { - ["f":"D":private]=> - string(10) "Original f" - ["g":protected]=> - string(9) "changed.g" ["a"]=> string(9) "changed.a" ["b"]=> @@ -287,6 +283,10 @@ object(D)#%d (7) { string(9) "changed.d" ["e":"C":private]=> string(9) "changed.e" + ["f":"D":private]=> + string(10) "Original f" + ["g":protected]=> + string(9) "changed.g" } --> Using instance of E: @@ -295,8 +295,8 @@ string(12) "Overridden a" string(12) "Overridden b" string(12) "Overridden c" string(12) "Overridden d" -string(10) "Original g" string(10) "Original e" +string(10) "Original g" object(E)#%d (8) { ["a"]=> string(9) "changed.a" @@ -306,14 +306,14 @@ object(E)#%d (8) { string(9) "changed.c" ["d":protected]=> string(9) "changed.d" - ["e":"E":private]=> - string(12) "Overridden e" + ["e":"C":private]=> + string(9) "changed.e" ["f":"D":private]=> string(10) "Original f" ["g":protected]=> string(9) "changed.g" - ["e":"C":private]=> - string(9) "changed.e" + ["e":"E":private]=> + string(12) "Overridden e" } @@ -375,17 +375,13 @@ object(C)#%d (5) { --> Using instance of D: in C::doForEach -string(10) "Original g" string(10) "Original a" string(10) "Original b" string(10) "Original c" string(10) "Original d" string(10) "Original e" +string(10) "Original g" object(D)#%d (7) { - ["f":"D":private]=> - string(10) "Original f" - ["g":protected]=> - string(9) "changed.g" ["a"]=> string(9) "changed.a" ["b"]=> @@ -396,41 +392,19 @@ object(D)#%d (7) { string(9) "changed.d" ["e":"C":private]=> string(9) "changed.e" -} -in D::doForEach -string(10) "Original f" -string(10) "Original g" -string(10) "Original a" -string(10) "Original b" -string(10) "Original c" -string(10) "Original d" -object(D)#%d (7) { - ["f":"D":private]=> - string(9) "changed.f" - ["g":protected]=> - string(9) "changed.g" - ["a"]=> - string(9) "changed.a" - ["b"]=> - string(9) "changed.b" - ["c"]=> - string(9) "changed.c" - ["d":protected]=> - string(9) "changed.d" - ["e":"C":private]=> - string(10) "Original e" -} -in E::doForEach -string(10) "Original g" -string(10) "Original a" -string(10) "Original b" -string(10) "Original c" -string(10) "Original d" -object(D)#%d (7) { ["f":"D":private]=> string(10) "Original f" ["g":protected]=> string(9) "changed.g" +} +in D::doForEach +string(10) "Original a" +string(10) "Original b" +string(10) "Original c" +string(10) "Original d" +string(10) "Original f" +string(10) "Original g" +object(D)#%d (7) { ["a"]=> string(9) "changed.a" ["b"]=> @@ -441,6 +415,32 @@ object(D)#%d (7) { string(9) "changed.d" ["e":"C":private]=> string(10) "Original e" + ["f":"D":private]=> + string(9) "changed.f" + ["g":protected]=> + string(9) "changed.g" +} +in E::doForEach +string(10) "Original a" +string(10) "Original b" +string(10) "Original c" +string(10) "Original d" +string(10) "Original g" +object(D)#%d (7) { + ["a"]=> + string(9) "changed.a" + ["b"]=> + string(9) "changed.b" + ["c"]=> + string(9) "changed.c" + ["d":protected]=> + string(9) "changed.d" + ["e":"C":private]=> + string(10) "Original e" + ["f":"D":private]=> + string(10) "Original f" + ["g":protected]=> + string(9) "changed.g" } --> Using instance of E: @@ -449,8 +449,8 @@ string(12) "Overridden a" string(12) "Overridden b" string(12) "Overridden c" string(12) "Overridden d" -string(10) "Original g" string(10) "Original e" +string(10) "Original g" object(E)#%d (8) { ["a"]=> string(9) "changed.a" @@ -460,14 +460,14 @@ object(E)#%d (8) { string(9) "changed.c" ["d":protected]=> string(9) "changed.d" - ["e":"E":private]=> - string(12) "Overridden e" + ["e":"C":private]=> + string(9) "changed.e" ["f":"D":private]=> string(10) "Original f" ["g":protected]=> string(9) "changed.g" - ["e":"C":private]=> - string(9) "changed.e" + ["e":"E":private]=> + string(12) "Overridden e" } in D::doForEach string(12) "Overridden a" @@ -485,22 +485,22 @@ object(E)#%d (8) { string(9) "changed.c" ["d":protected]=> string(9) "changed.d" - ["e":"E":private]=> - string(12) "Overridden e" + ["e":"C":private]=> + string(10) "Original e" ["f":"D":private]=> string(9) "changed.f" ["g":protected]=> string(9) "changed.g" - ["e":"C":private]=> - string(10) "Original e" + ["e":"E":private]=> + string(12) "Overridden e" } in E::doForEach string(12) "Overridden a" string(12) "Overridden b" string(12) "Overridden c" string(12) "Overridden d" -string(12) "Overridden e" string(10) "Original g" +string(12) "Overridden e" object(E)#%d (8) { ["a"]=> string(9) "changed.a" @@ -510,14 +510,14 @@ object(E)#%d (8) { string(9) "changed.c" ["d":protected]=> string(9) "changed.d" - ["e":"E":private]=> - string(9) "changed.e" + ["e":"C":private]=> + string(10) "Original e" ["f":"D":private]=> string(10) "Original f" ["g":protected]=> string(9) "changed.g" - ["e":"C":private]=> - string(10) "Original e" + ["e":"E":private]=> + string(9) "changed.e" } @@ -545,10 +545,6 @@ string(10) "Original a" string(10) "Original b" string(10) "Original c" object(D)#%d (7) { - ["f":"D":private]=> - string(10) "Original f" - ["g":protected]=> - string(10) "Original g" ["a"]=> string(9) "changed.a" ["b"]=> @@ -559,6 +555,10 @@ object(D)#%d (7) { string(10) "Original d" ["e":"C":private]=> string(10) "Original e" + ["f":"D":private]=> + string(10) "Original f" + ["g":protected]=> + string(10) "Original g" } --> Using instance of E: @@ -574,12 +574,12 @@ object(E)#%d (8) { &string(9) "changed.c" ["d":protected]=> string(12) "Overridden d" - ["e":"E":private]=> - string(12) "Overridden e" + ["e":"C":private]=> + string(10) "Original e" ["f":"D":private]=> string(10) "Original f" ["g":protected]=> string(10) "Original g" - ["e":"C":private]=> - string(10) "Original e" + ["e":"E":private]=> + string(12) "Overridden e" }