summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2021-03-01 13:43:22 +0300
committerDmitry Stogov <dmitry@zend.com>2021-03-01 13:43:22 +0300
commitb0c7ea4919e54b9507713543f49c9fd6246d44bf (patch)
tree6576f1cef77a371913fd01b217f1165e11f15d49
parent47a2e5c785cdba71e003d9ad77cb799d4be88806 (diff)
parentc9a9362c78e866919630f1d78303848fba35bd0a (diff)
downloadphp-git-b0c7ea4919e54b9507713543f49c9fd6246d44bf.tar.gz
Change the order of properties used in foreach(), var_dump(), serialize(), comparison, etc. Now properties are ordered according to their layout in zend_object structure.
-rw-r--r--UPGRADING9
-rw-r--r--Zend/tests/bug27798.phpt4
-rw-r--r--Zend/tests/bug60536_003.phpt8
-rw-r--r--Zend/tests/bug79862.phpt8
-rw-r--r--Zend/tests/get_mangled_object_vars.phpt2
-rw-r--r--Zend/tests/objects_033.phpt4
-rw-r--r--Zend/tests/traits/property008.phpt12
-rw-r--r--Zend/zend_object_handlers.c54
-rw-r--r--ext/date/tests/DateTimeZone_clone_basic2.phpt16
-rw-r--r--ext/date/tests/DateTime_clone_basic2.phpt16
-rw-r--r--ext/dom/tests/dom003.phpt4
-rw-r--r--ext/dom/tests/dom_set_attr_node.phpt4
-rw-r--r--ext/mysqli/tests/mysqli_stmt_bind_result_references.phpt12
-rw-r--r--ext/pdo/tests/pdo_005.phpt12
-rw-r--r--ext/pdo/tests/pdo_018.phpt24
-rw-r--r--ext/pdo/tests/pdo_023.phpt4
-rw-r--r--ext/soap/tests/classmap003.phpt2
-rw-r--r--ext/standard/tests/array/array_fill_object.phpt32
-rw-r--r--ext/standard/tests/array/array_filter_object.phpt8
-rw-r--r--ext/standard/tests/array/array_unshift_object.phpt8
-rw-r--r--ext/standard/tests/array/uasort_object2.phpt16
-rw-r--r--ext/standard/tests/array/usort_object2.phpt16
-rw-r--r--ext/standard/tests/class_object/get_object_vars_basic_001.phpt4
-rw-r--r--ext/standard/tests/class_object/get_object_vars_basic_002.phpt4
-rw-r--r--ext/standard/tests/serialize/__serialize_005.phpt4
-rw-r--r--ext/standard/tests/serialize/bug76300.phpt2
-rw-r--r--ext/standard/tests/serialize/serialization_objects_011.phpt64
-rw-r--r--ext/zip/tests/bug38943.phpt18
-rw-r--r--ext/zip/tests/bug38943_2.phpt18
-rw-r--r--tests/classes/clone_003.phpt4
-rw-r--r--tests/classes/clone_004.phpt24
-rw-r--r--tests/classes/constants_basic_004.phpt6
-rw-r--r--tests/classes/ctor_dtor_inheritance.phpt10
-rw-r--r--tests/classes/inheritance_006.phpt4
-rw-r--r--tests/classes/private_members.phpt14
-rw-r--r--tests/lang/foreachLoopObjects.002.phpt118
36 files changed, 283 insertions, 286 deletions
diff --git a/UPGRADING b/UPGRADING
index f5c00596e4..495b831b79 100644
--- a/UPGRADING
+++ b/UPGRADING
@@ -211,6 +211,15 @@ PHP 8.1 UPGRADE NOTES
5. Changed Functions
========================================
+- Core:
+ . Properties order used in foreach, var_dump(), serialize(), object comparison
+ etc. was changed. Now properties are naturally ordered according to their
+ declaration and inheritance. Prpoerties declared in a base class are going
+ to be before the child properties. This order is consistent with internal
+ layout of properies in zend_objct structure and repeats the order in
+ default_properties_table[] and properties_info_table[]. The old order was
+ not documented and was caused by class inheritance implementation details.
+
- Filter:
. The FILTER_FLAG_ALLOW_OCTAL flag of the FILTER_VALIDATE_INT filter now accept
octal string with the leading octal prefix ("0o"/"0O")
diff --git a/Zend/tests/bug27798.phpt b/Zend/tests/bug27798.phpt
index 310fd97991..c16c5c825d 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 3ba23b9288..8696591bb2 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 b923da78b4..a04dc5c9ac 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 735548579e..f9ad008a33 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 3c19864490..edb722b040 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 ff265be2a0..d4d57f379a 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 b903afb8ba..94d2ff8cf4 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;
+
+ info = zobj1->ce->properties_info_table[i];
- if (info->flags & ZEND_ACC_STATIC) {
+ 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 b41eeddfbd..f7f81cb275 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 261879283e..439bf4b23f 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 20db09d40e..d846995db5 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 6160cd48f2..bb573ffda0 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 8ac3a049a1..91a8c0a556 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 25eab7782f..1427028a9f 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 d35e078b32..de03382353 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 834c99309e..ee38f98cac 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 3150c4be81..c7ea7a02dd 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 58fd532632..b7b6d348f5 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 9b10d20aea..0c2b175e25 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 1feda5bf96..02abff3d1e 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 82a9cb908b..6217a44b9b 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 cdb91d4027..abc42b736b 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 babd381a08..8f647ace0b 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 313a53ac88..5e7ef736f7 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 3656a034b3..c65c0cdec8 100644
--- a/ext/standard/tests/serialize/__serialize_005.phpt
+++ b/ext/standard/tests/serialize/__serialize_005.phpt
@@ -41,13 +41,13 @@ 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]=>
+ ["data":"A":private]=>
array(1) {
[0]=>
object(stdClass)#4 (0) {
}
}
- ["data":"A":private]=>
+ ["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 f8636dc9a5..ef7536e0db 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 ba721a3d98..5fbcedd7ec 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"
-}
-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";}"
-Unserialized:
-object(B)#%d (6) {
["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:"\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) {
["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"
-}
-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";}"
-Unserialized:
-object(C)#%d (10) {
["APriv":"C":private]=>
string(7) "C.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"
+}
+Serialized form:
+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":"A":private]=>
+ string(7) "A.APriv"
+ ["AProt":protected]=>
+ string(7) "C.AProt"
+ ["APub"]=>
+ string(6) "C.APub"
["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 f079f81153..26ddfa2cb1 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 fa2a086b19..25580b57f4 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 30d4cc549a..83326ed5dc 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 610a00e702..80f80e220c 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,9 +47,6 @@ object(test)#1 (2) {
[1]=>
int(2)
}
-}
-Clone
-object(test)#2 (2) {
["b"]=>
array(2) {
[0]=>
@@ -64,6 +54,9 @@ object(test)#2 (2) {
[1]=>
int(4)
}
+}
+Clone
+object(test)#2 (2) {
["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 c3df0747a4..8cbac55dfa 100644
--- a/tests/classes/constants_basic_004.phpt
+++ b/tests/classes/constants_basic_004.phpt
@@ -80,17 +80,17 @@ object(B)#%d (1) {
}
}
object(C)#%d (3) {
- ["a_c_parent"]=>
+ ["a_b"]=>
array(1) {
["key"]=>
string(5) "value"
}
- ["a_c_self"]=>
+ ["a_c_parent"]=>
array(1) {
["key"]=>
string(5) "value"
}
- ["a_b"]=>
+ ["a_c_self"]=>
array(1) {
["key"]=>
string(5) "value"
diff --git a/tests/classes/ctor_dtor_inheritance.phpt b/tests/classes/ctor_dtor_inheritance.phpt
index bd1414c8b8..5dbb174706 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 6009c35ffc..35465cc2ac 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 1b48722dbb..19539cf374 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 46bd6f8a37..ed9ce5c94a 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,19 +392,19 @@ 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"
}
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"
+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"]=>
@@ -419,18 +415,18 @@ 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 g"
string(10) "Original a"
string(10) "Original b"
string(10) "Original c"
string(10) "Original d"
+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"]=>
@@ -441,6 +437,10 @@ object(D)#%d (7) {
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"
}