From 194e2dd0813b1b7296b1101bef75f43c19f11e03 Mon Sep 17 00:00:00 2001 From: Derick Rethans Date: Mon, 17 Oct 2005 15:03:12 +0000 Subject: [PATCH] - MF51: Fixed bug #29361 (var_export() producing invalid code). --- ext/standard/tests/array/007.phpt | 402 +++--- .../tests/array/array_intersect_1.phpt | 1126 ++++++++--------- ext/standard/tests/array/var_export.phpt | 6 +- ext/standard/tests/array/var_export3.phpt | 24 + ext/standard/var.c | 17 +- 5 files changed, 795 insertions(+), 780 deletions(-) create mode 100644 ext/standard/tests/array/var_export3.phpt diff --git a/ext/standard/tests/array/007.phpt b/ext/standard/tests/array/007.phpt index 971216a88e..7a21d3e35a 100644 --- a/ext/standard/tests/array/007.phpt +++ b/ext/standard/tests/array/007.phpt @@ -111,7 +111,7 @@ var_dump(array_udiff_uassoc($a, $b, array("cr", "comp_func_cr"), "comp_func")); echo '$a='.var_export($a,TRUE).";\n"; echo '$b='.var_export($b,TRUE).";\n"; echo 'var_dump(array_diff_assoc($a, $b));'."\n"; -var_dump(@array_diff_assoc($a, $b)); +var_dump(array_diff_assoc($a, $b)); echo '$a='.var_export($a,TRUE).";\n"; @@ -254,57 +254,57 @@ array(9) { -=-=-=-=-=-=-=-=- New functionality from 5.0.0 -=-=-=-=-=-=-=- $a=array ( '0.1' => - class cr { - private $priv_member = 9; - public $public_member = 9; - }, + cr::__set_state(array( + 'priv_member' => 9, + 'public_member' => 9, + )), '0.5' => - class cr { - private $priv_member = 12; - public $public_member = 12; - }, + cr::__set_state(array( + 'priv_member' => 12, + 'public_member' => 12, + )), 0 => - class cr { - private $priv_member = 23; - public $public_member = 23; - }, + cr::__set_state(array( + 'priv_member' => 23, + 'public_member' => 23, + )), 1 => - class cr { - private $priv_member = 4; - public $public_member = 4; - }, + cr::__set_state(array( + 'priv_member' => 4, + 'public_member' => 4, + )), 2 => - class cr { - private $priv_member = -15; - public $public_member = -15; - }, + cr::__set_state(array( + 'priv_member' => -15, + 'public_member' => -15, + )), ); $b=array ( '0.2' => - class cr { - private $priv_member = 9; - public $public_member = 9; - }, + cr::__set_state(array( + 'priv_member' => 9, + 'public_member' => 9, + )), '0.5' => - class cr { - private $priv_member = 22; - public $public_member = 22; - }, + cr::__set_state(array( + 'priv_member' => 22, + 'public_member' => 22, + )), 0 => - class cr { - private $priv_member = 3; - public $public_member = 3; - }, + cr::__set_state(array( + 'priv_member' => 3, + 'public_member' => 3, + )), 1 => - class cr { - private $priv_member = 4; - public $public_member = 4; - }, + cr::__set_state(array( + 'priv_member' => 4, + 'public_member' => 4, + )), 2 => - class cr { - private $priv_member = -15; - public $public_member = -15; - }, + cr::__set_state(array( + 'priv_member' => -15, + 'public_member' => -15, + )), ); var_dump(array_udiff_uassoc($a, $b, "comp_func_cr", "comp_func")); array(3) { @@ -332,57 +332,57 @@ array(3) { } $a=array ( '0.1' => - class cr { - private $priv_member = 9; - public $public_member = 9; - }, + cr::__set_state(array( + 'priv_member' => 9, + 'public_member' => 9, + )), '0.5' => - class cr { - private $priv_member = 12; - public $public_member = 12; - }, + cr::__set_state(array( + 'priv_member' => 12, + 'public_member' => 12, + )), 0 => - class cr { - private $priv_member = 23; - public $public_member = 23; - }, + cr::__set_state(array( + 'priv_member' => 23, + 'public_member' => 23, + )), 1 => - class cr { - private $priv_member = 4; - public $public_member = 4; - }, + cr::__set_state(array( + 'priv_member' => 4, + 'public_member' => 4, + )), 2 => - class cr { - private $priv_member = -15; - public $public_member = -15; - }, + cr::__set_state(array( + 'priv_member' => -15, + 'public_member' => -15, + )), ); $b=array ( '0.2' => - class cr { - private $priv_member = 9; - public $public_member = 9; - }, + cr::__set_state(array( + 'priv_member' => 9, + 'public_member' => 9, + )), '0.5' => - class cr { - private $priv_member = 22; - public $public_member = 22; - }, + cr::__set_state(array( + 'priv_member' => 22, + 'public_member' => 22, + )), 0 => - class cr { - private $priv_member = 3; - public $public_member = 3; - }, + cr::__set_state(array( + 'priv_member' => 3, + 'public_member' => 3, + )), 1 => - class cr { - private $priv_member = 4; - public $public_member = 4; - }, + cr::__set_state(array( + 'priv_member' => 4, + 'public_member' => 4, + )), 2 => - class cr { - private $priv_member = -15; - public $public_member = -15; - }, + cr::__set_state(array( + 'priv_member' => -15, + 'public_member' => -15, + )), ); var_dump(array_udiff_uassoc($a, $b, array("cr", "comp_func_cr"), "comp_func")); array(3) { @@ -410,57 +410,57 @@ array(3) { } $a=array ( '0.1' => - class cr { - private $priv_member = 9; - public $public_member = 9; - }, + cr::__set_state(array( + 'priv_member' => 9, + 'public_member' => 9, + )), '0.5' => - class cr { - private $priv_member = 12; - public $public_member = 12; - }, + cr::__set_state(array( + 'priv_member' => 12, + 'public_member' => 12, + )), 0 => - class cr { - private $priv_member = 23; - public $public_member = 23; - }, + cr::__set_state(array( + 'priv_member' => 23, + 'public_member' => 23, + )), 1 => - class cr { - private $priv_member = 4; - public $public_member = 4; - }, + cr::__set_state(array( + 'priv_member' => 4, + 'public_member' => 4, + )), 2 => - class cr { - private $priv_member = -15; - public $public_member = -15; - }, + cr::__set_state(array( + 'priv_member' => -15, + 'public_member' => -15, + )), ); $b=array ( '0.2' => - class cr { - private $priv_member = 9; - public $public_member = 9; - }, + cr::__set_state(array( + 'priv_member' => 9, + 'public_member' => 9, + )), '0.5' => - class cr { - private $priv_member = 22; - public $public_member = 22; - }, + cr::__set_state(array( + 'priv_member' => 22, + 'public_member' => 22, + )), 0 => - class cr { - private $priv_member = 3; - public $public_member = 3; - }, + cr::__set_state(array( + 'priv_member' => 3, + 'public_member' => 3, + )), 1 => - class cr { - private $priv_member = 4; - public $public_member = 4; - }, + cr::__set_state(array( + 'priv_member' => 4, + 'public_member' => 4, + )), 2 => - class cr { - private $priv_member = -15; - public $public_member = -15; - }, + cr::__set_state(array( + 'priv_member' => -15, + 'public_member' => -15, + )), ); var_dump(array_diff_assoc($a, $b)); array(5) { @@ -502,57 +502,57 @@ array(5) { } $a=array ( '0.1' => - class cr { - private $priv_member = 9; - public $public_member = 9; - }, + cr::__set_state(array( + 'priv_member' => 9, + 'public_member' => 9, + )), '0.5' => - class cr { - private $priv_member = 12; - public $public_member = 12; - }, + cr::__set_state(array( + 'priv_member' => 12, + 'public_member' => 12, + )), 0 => - class cr { - private $priv_member = 23; - public $public_member = 23; - }, + cr::__set_state(array( + 'priv_member' => 23, + 'public_member' => 23, + )), 1 => - class cr { - private $priv_member = 4; - public $public_member = 4; - }, + cr::__set_state(array( + 'priv_member' => 4, + 'public_member' => 4, + )), 2 => - class cr { - private $priv_member = -15; - public $public_member = -15; - }, + cr::__set_state(array( + 'priv_member' => -15, + 'public_member' => -15, + )), ); $b=array ( '0.2' => - class cr { - private $priv_member = 9; - public $public_member = 9; - }, + cr::__set_state(array( + 'priv_member' => 9, + 'public_member' => 9, + )), '0.5' => - class cr { - private $priv_member = 22; - public $public_member = 22; - }, + cr::__set_state(array( + 'priv_member' => 22, + 'public_member' => 22, + )), 0 => - class cr { - private $priv_member = 3; - public $public_member = 3; - }, + cr::__set_state(array( + 'priv_member' => 3, + 'public_member' => 3, + )), 1 => - class cr { - private $priv_member = 4; - public $public_member = 4; - }, + cr::__set_state(array( + 'priv_member' => 4, + 'public_member' => 4, + )), 2 => - class cr { - private $priv_member = -15; - public $public_member = -15; - }, + cr::__set_state(array( + 'priv_member' => -15, + 'public_member' => -15, + )), ); var_dump(array_udiff($a, $b, "comp_func_cr")); array(2) { @@ -573,57 +573,57 @@ array(2) { } $a=array ( '0.1' => - class cr { - private $priv_member = 9; - public $public_member = 9; - }, + cr::__set_state(array( + 'priv_member' => 9, + 'public_member' => 9, + )), '0.5' => - class cr { - private $priv_member = 12; - public $public_member = 12; - }, + cr::__set_state(array( + 'priv_member' => 12, + 'public_member' => 12, + )), 0 => - class cr { - private $priv_member = 23; - public $public_member = 23; - }, + cr::__set_state(array( + 'priv_member' => 23, + 'public_member' => 23, + )), 1 => - class cr { - private $priv_member = 4; - public $public_member = 4; - }, + cr::__set_state(array( + 'priv_member' => 4, + 'public_member' => 4, + )), 2 => - class cr { - private $priv_member = -15; - public $public_member = -15; - }, + cr::__set_state(array( + 'priv_member' => -15, + 'public_member' => -15, + )), ); $b=array ( '0.2' => - class cr { - private $priv_member = 9; - public $public_member = 9; - }, + cr::__set_state(array( + 'priv_member' => 9, + 'public_member' => 9, + )), '0.5' => - class cr { - private $priv_member = 22; - public $public_member = 22; - }, + cr::__set_state(array( + 'priv_member' => 22, + 'public_member' => 22, + )), 0 => - class cr { - private $priv_member = 3; - public $public_member = 3; - }, + cr::__set_state(array( + 'priv_member' => 3, + 'public_member' => 3, + )), 1 => - class cr { - private $priv_member = 4; - public $public_member = 4; - }, + cr::__set_state(array( + 'priv_member' => 4, + 'public_member' => 4, + )), 2 => - class cr { - private $priv_member = -15; - public $public_member = -15; - }, + cr::__set_state(array( + 'priv_member' => -15, + 'public_member' => -15, + )), ); var_dump(array_udiff_assoc($a, $b, "comp_func_cr")); array(3) { diff --git a/ext/standard/tests/array/array_intersect_1.phpt b/ext/standard/tests/array/array_intersect_1.phpt index f3eb6ec780..5aa23349e7 100644 --- a/ext/standard/tests/array/array_intersect_1.phpt +++ b/ext/standard/tests/array/array_intersect_1.phpt @@ -35,7 +35,7 @@ echo "begin ------------ array_intersect() ----------------------------\n"; echo '$a='.var_export($a,TRUE).";\n"; echo '$b='.var_export($b,TRUE).";\n"; echo 'var_dump(array_intersect($a, $b);'."\n"; -var_dump(@array_intersect($a, $b)); +var_dump(array_intersect($a, $b)); echo "end ------------ array_intersect() ----------------------------\n"; /* array_uintersect() */ @@ -51,7 +51,7 @@ echo "begin ------------ array_intersect_assoc() ----------------------\n"; echo '$a='.var_export($a,TRUE).";\n"; echo '$b='.var_export($b,TRUE).";\n"; echo 'var_dump(array_intersect_assoc($a, $b));'."\n"; -var_dump(@array_intersect_assoc($a, $b)); +var_dump(array_intersect_assoc($a, $b)); echo "end ------------ array_intersect_assoc() ----------------------\n"; /* array_uintersect_assoc() */ @@ -67,7 +67,7 @@ echo "begin ------------ array_intersect_uassoc() ---------------------\n"; echo '$a='.var_export($a,TRUE).";\n"; echo '$b='.var_export($b,TRUE).";\n"; echo 'var_dump(array_intersect_uassoc($a, $b, "comp_func"));'."\n"; -var_dump(@array_intersect_uassoc($a, $b, "comp_func")); +var_dump(array_intersect_uassoc($a, $b, "comp_func")); echo "end ------------ array_intersect_uassoc() ---------------------\n"; /* array_uintersect_uassoc() - with ordinary function */ @@ -90,57 +90,57 @@ echo "end ------------ array_uintersect_uassoc() with method --------\n"; begin ------------ array_intersect() ---------------------------- $a=array ( '0.1' => - class cr { - private $priv_member = 9; - public $public_member = 9; - }, + cr::__set_state(array( + 'priv_member' => 9, + 'public_member' => 9, + )), '0.5' => - class cr { - private $priv_member = 12; - public $public_member = 12; - }, + cr::__set_state(array( + 'priv_member' => 12, + 'public_member' => 12, + )), 0 => - class cr { - private $priv_member = 23; - public $public_member = 23; - }, + cr::__set_state(array( + 'priv_member' => 23, + 'public_member' => 23, + )), 1 => - class cr { - private $priv_member = 4; - public $public_member = 4; - }, + cr::__set_state(array( + 'priv_member' => 4, + 'public_member' => 4, + )), 2 => - class cr { - private $priv_member = -15; - public $public_member = -15; - }, + cr::__set_state(array( + 'priv_member' => -15, + 'public_member' => -15, + )), ); $b=array ( '0.2' => - class cr { - private $priv_member = 9; - public $public_member = 9; - }, + cr::__set_state(array( + 'priv_member' => 9, + 'public_member' => 9, + )), '0.5' => - class cr { - private $priv_member = 22; - public $public_member = 22; - }, + cr::__set_state(array( + 'priv_member' => 22, + 'public_member' => 22, + )), 0 => - class cr { - private $priv_member = 3; - public $public_member = 3; - }, + cr::__set_state(array( + 'priv_member' => 3, + 'public_member' => 3, + )), 1 => - class cr { - private $priv_member = 4; - public $public_member = 4; - }, + cr::__set_state(array( + 'priv_member' => 4, + 'public_member' => 4, + )), 2 => - class cr { - private $priv_member = -15; - public $public_member = -15; - }, + cr::__set_state(array( + 'priv_member' => -15, + 'public_member' => -15, + )), ); var_dump(array_intersect($a, $b); array(0) { @@ -149,57 +149,57 @@ end ------------ array_intersect() ---------------------------- begin ------------ array_uintersect() --------------------------- $a=array ( '0.1' => - class cr { - private $priv_member = 9; - public $public_member = 9; - }, + cr::__set_state(array( + 'priv_member' => 9, + 'public_member' => 9, + )), '0.5' => - class cr { - private $priv_member = 12; - public $public_member = 12; - }, + cr::__set_state(array( + 'priv_member' => 12, + 'public_member' => 12, + )), 0 => - class cr { - private $priv_member = 23; - public $public_member = 23; - }, + cr::__set_state(array( + 'priv_member' => 23, + 'public_member' => 23, + )), 1 => - class cr { - private $priv_member = 4; - public $public_member = 4; - }, + cr::__set_state(array( + 'priv_member' => 4, + 'public_member' => 4, + )), 2 => - class cr { - private $priv_member = -15; - public $public_member = -15; - }, + cr::__set_state(array( + 'priv_member' => -15, + 'public_member' => -15, + )), ); $b=array ( '0.2' => - class cr { - private $priv_member = 9; - public $public_member = 9; - }, + cr::__set_state(array( + 'priv_member' => 9, + 'public_member' => 9, + )), '0.5' => - class cr { - private $priv_member = 22; - public $public_member = 22; - }, + cr::__set_state(array( + 'priv_member' => 22, + 'public_member' => 22, + )), 0 => - class cr { - private $priv_member = 3; - public $public_member = 3; - }, + cr::__set_state(array( + 'priv_member' => 3, + 'public_member' => 3, + )), 1 => - class cr { - private $priv_member = 4; - public $public_member = 4; - }, + cr::__set_state(array( + 'priv_member' => 4, + 'public_member' => 4, + )), 2 => - class cr { - private $priv_member = -15; - public $public_member = -15; - }, + cr::__set_state(array( + 'priv_member' => -15, + 'public_member' => -15, + )), ); var_dump(array_uintersect($a, $b, "comp_func_cr")); array(3) { @@ -229,57 +229,57 @@ end ------------ array_uintersect() --------------------------- begin ------------ array_intersect_assoc() ---------------------- $a=array ( '0.1' => - class cr { - private $priv_member = 9; - public $public_member = 9; - }, + cr::__set_state(array( + 'priv_member' => 9, + 'public_member' => 9, + )), '0.5' => - class cr { - private $priv_member = 12; - public $public_member = 12; - }, + cr::__set_state(array( + 'priv_member' => 12, + 'public_member' => 12, + )), 0 => - class cr { - private $priv_member = 23; - public $public_member = 23; - }, + cr::__set_state(array( + 'priv_member' => 23, + 'public_member' => 23, + )), 1 => - class cr { - private $priv_member = 4; - public $public_member = 4; - }, + cr::__set_state(array( + 'priv_member' => 4, + 'public_member' => 4, + )), 2 => - class cr { - private $priv_member = -15; - public $public_member = -15; - }, + cr::__set_state(array( + 'priv_member' => -15, + 'public_member' => -15, + )), ); $b=array ( '0.2' => - class cr { - private $priv_member = 9; - public $public_member = 9; - }, + cr::__set_state(array( + 'priv_member' => 9, + 'public_member' => 9, + )), '0.5' => - class cr { - private $priv_member = 22; - public $public_member = 22; - }, + cr::__set_state(array( + 'priv_member' => 22, + 'public_member' => 22, + )), 0 => - class cr { - private $priv_member = 3; - public $public_member = 3; - }, + cr::__set_state(array( + 'priv_member' => 3, + 'public_member' => 3, + )), 1 => - class cr { - private $priv_member = 4; - public $public_member = 4; - }, + cr::__set_state(array( + 'priv_member' => 4, + 'public_member' => 4, + )), 2 => - class cr { - private $priv_member = -15; - public $public_member = -15; - }, + cr::__set_state(array( + 'priv_member' => -15, + 'public_member' => -15, + )), ); var_dump(array_intersect_assoc($a, $b)); array(0) { @@ -288,57 +288,57 @@ end ------------ array_intersect_assoc() ---------------------- begin ------------ array_uintersect_assoc() --------------------- $a=array ( '0.1' => - class cr { - private $priv_member = 9; - public $public_member = 9; - }, + cr::__set_state(array( + 'priv_member' => 9, + 'public_member' => 9, + )), '0.5' => - class cr { - private $priv_member = 12; - public $public_member = 12; - }, + cr::__set_state(array( + 'priv_member' => 12, + 'public_member' => 12, + )), 0 => - class cr { - private $priv_member = 23; - public $public_member = 23; - }, + cr::__set_state(array( + 'priv_member' => 23, + 'public_member' => 23, + )), 1 => - class cr { - private $priv_member = 4; - public $public_member = 4; - }, + cr::__set_state(array( + 'priv_member' => 4, + 'public_member' => 4, + )), 2 => - class cr { - private $priv_member = -15; - public $public_member = -15; - }, + cr::__set_state(array( + 'priv_member' => -15, + 'public_member' => -15, + )), ); $b=array ( '0.2' => - class cr { - private $priv_member = 9; - public $public_member = 9; - }, + cr::__set_state(array( + 'priv_member' => 9, + 'public_member' => 9, + )), '0.5' => - class cr { - private $priv_member = 22; - public $public_member = 22; - }, + cr::__set_state(array( + 'priv_member' => 22, + 'public_member' => 22, + )), 0 => - class cr { - private $priv_member = 3; - public $public_member = 3; - }, + cr::__set_state(array( + 'priv_member' => 3, + 'public_member' => 3, + )), 1 => - class cr { - private $priv_member = 4; - public $public_member = 4; - }, + cr::__set_state(array( + 'priv_member' => 4, + 'public_member' => 4, + )), 2 => - class cr { - private $priv_member = -15; - public $public_member = -15; - }, + cr::__set_state(array( + 'priv_member' => -15, + 'public_member' => -15, + )), ); var_dump(array_uintersect_assoc($a, $b, "comp_func_cr")); array(2) { @@ -361,57 +361,57 @@ end ------------ array_uintersect_assoc() --------------------- begin ------------ array_intersect_uassoc() --------------------- $a=array ( '0.1' => - class cr { - private $priv_member = 9; - public $public_member = 9; - }, + cr::__set_state(array( + 'priv_member' => 9, + 'public_member' => 9, + )), '0.5' => - class cr { - private $priv_member = 12; - public $public_member = 12; - }, + cr::__set_state(array( + 'priv_member' => 12, + 'public_member' => 12, + )), 0 => - class cr { - private $priv_member = 23; - public $public_member = 23; - }, + cr::__set_state(array( + 'priv_member' => 23, + 'public_member' => 23, + )), 1 => - class cr { - private $priv_member = 4; - public $public_member = 4; - }, + cr::__set_state(array( + 'priv_member' => 4, + 'public_member' => 4, + )), 2 => - class cr { - private $priv_member = -15; - public $public_member = -15; - }, + cr::__set_state(array( + 'priv_member' => -15, + 'public_member' => -15, + )), ); $b=array ( '0.2' => - class cr { - private $priv_member = 9; - public $public_member = 9; - }, + cr::__set_state(array( + 'priv_member' => 9, + 'public_member' => 9, + )), '0.5' => - class cr { - private $priv_member = 22; - public $public_member = 22; - }, + cr::__set_state(array( + 'priv_member' => 22, + 'public_member' => 22, + )), 0 => - class cr { - private $priv_member = 3; - public $public_member = 3; - }, + cr::__set_state(array( + 'priv_member' => 3, + 'public_member' => 3, + )), 1 => - class cr { - private $priv_member = 4; - public $public_member = 4; - }, + cr::__set_state(array( + 'priv_member' => 4, + 'public_member' => 4, + )), 2 => - class cr { - private $priv_member = -15; - public $public_member = -15; - }, + cr::__set_state(array( + 'priv_member' => -15, + 'public_member' => -15, + )), ); var_dump(array_intersect_uassoc($a, $b, "comp_func")); array(0) { @@ -420,57 +420,57 @@ end ------------ array_intersect_uassoc() --------------------- begin ------------ array_uintersect_uassoc() with ordinary func - $a=array ( '0.1' => - class cr { - private $priv_member = 9; - public $public_member = 9; - }, + cr::__set_state(array( + 'priv_member' => 9, + 'public_member' => 9, + )), '0.5' => - class cr { - private $priv_member = 12; - public $public_member = 12; - }, + cr::__set_state(array( + 'priv_member' => 12, + 'public_member' => 12, + )), 0 => - class cr { - private $priv_member = 23; - public $public_member = 23; - }, + cr::__set_state(array( + 'priv_member' => 23, + 'public_member' => 23, + )), 1 => - class cr { - private $priv_member = 4; - public $public_member = 4; - }, + cr::__set_state(array( + 'priv_member' => 4, + 'public_member' => 4, + )), 2 => - class cr { - private $priv_member = -15; - public $public_member = -15; - }, + cr::__set_state(array( + 'priv_member' => -15, + 'public_member' => -15, + )), ); $b=array ( '0.2' => - class cr { - private $priv_member = 9; - public $public_member = 9; - }, + cr::__set_state(array( + 'priv_member' => 9, + 'public_member' => 9, + )), '0.5' => - class cr { - private $priv_member = 22; - public $public_member = 22; - }, + cr::__set_state(array( + 'priv_member' => 22, + 'public_member' => 22, + )), 0 => - class cr { - private $priv_member = 3; - public $public_member = 3; - }, + cr::__set_state(array( + 'priv_member' => 3, + 'public_member' => 3, + )), 1 => - class cr { - private $priv_member = 4; - public $public_member = 4; - }, + cr::__set_state(array( + 'priv_member' => 4, + 'public_member' => 4, + )), 2 => - class cr { - private $priv_member = -15; - public $public_member = -15; - }, + cr::__set_state(array( + 'priv_member' => -15, + 'public_member' => -15, + )), ); var_dump(array_uintersect_uassoc($a, $b, "comp_func_cr", "comp_func")); array(2) { @@ -493,57 +493,57 @@ end ------------ array_uintersect_uassoc() with ordinary func - begin ------------ array_uintersect_uassoc() with method -------- $a=array ( '0.1' => - class cr { - private $priv_member = 9; - public $public_member = 9; - }, + cr::__set_state(array( + 'priv_member' => 9, + 'public_member' => 9, + )), '0.5' => - class cr { - private $priv_member = 12; - public $public_member = 12; - }, + cr::__set_state(array( + 'priv_member' => 12, + 'public_member' => 12, + )), 0 => - class cr { - private $priv_member = 23; - public $public_member = 23; - }, + cr::__set_state(array( + 'priv_member' => 23, + 'public_member' => 23, + )), 1 => - class cr { - private $priv_member = 4; - public $public_member = 4; - }, + cr::__set_state(array( + 'priv_member' => 4, + 'public_member' => 4, + )), 2 => - class cr { - private $priv_member = -15; - public $public_member = -15; - }, + cr::__set_state(array( + 'priv_member' => -15, + 'public_member' => -15, + )), ); $b=array ( '0.2' => - class cr { - private $priv_member = 9; - public $public_member = 9; - }, + cr::__set_state(array( + 'priv_member' => 9, + 'public_member' => 9, + )), '0.5' => - class cr { - private $priv_member = 22; - public $public_member = 22; - }, + cr::__set_state(array( + 'priv_member' => 22, + 'public_member' => 22, + )), 0 => - class cr { - private $priv_member = 3; - public $public_member = 3; - }, + cr::__set_state(array( + 'priv_member' => 3, + 'public_member' => 3, + )), 1 => - class cr { - private $priv_member = 4; - public $public_member = 4; - }, + cr::__set_state(array( + 'priv_member' => 4, + 'public_member' => 4, + )), 2 => - class cr { - private $priv_member = -15; - public $public_member = -15; - }, + cr::__set_state(array( + 'priv_member' => -15, + 'public_member' => -15, + )), ); var_dump(array_uintersect_uassoc($a, $b, array("cr", "comp_func_cr"), "comp_func")); array(2) { @@ -567,57 +567,57 @@ end ------------ array_uintersect_uassoc() with method -------- begin ------------ array_intersect() ---------------------------- $a=array ( '0.1' => - class cr { - private $priv_member = 9; - public $public_member = 9; - }, + cr::__set_state(array( + 'priv_member' => 9, + 'public_member' => 9, + )), '0.5' => - class cr { - private $priv_member = 12; - public $public_member = 12; - }, + cr::__set_state(array( + 'priv_member' => 12, + 'public_member' => 12, + )), 0 => - class cr { - private $priv_member = 23; - public $public_member = 23; - }, + cr::__set_state(array( + 'priv_member' => 23, + 'public_member' => 23, + )), 1 => - class cr { - private $priv_member = 4; - public $public_member = 4; - }, + cr::__set_state(array( + 'priv_member' => 4, + 'public_member' => 4, + )), 2 => - class cr { - private $priv_member = -15; - public $public_member = -15; - }, + cr::__set_state(array( + 'priv_member' => -15, + 'public_member' => -15, + )), ); $b=array ( '0.2' => - class cr { - private $priv_member = 9; - public $public_member = 9; - }, + cr::__set_state(array( + 'priv_member' => 9, + 'public_member' => 9, + )), '0.5' => - class cr { - private $priv_member = 22; - public $public_member = 22; - }, + cr::__set_state(array( + 'priv_member' => 22, + 'public_member' => 22, + )), 0 => - class cr { - private $priv_member = 3; - public $public_member = 3; - }, + cr::__set_state(array( + 'priv_member' => 3, + 'public_member' => 3, + )), 1 => - class cr { - private $priv_member = 4; - public $public_member = 4; - }, + cr::__set_state(array( + 'priv_member' => 4, + 'public_member' => 4, + )), 2 => - class cr { - private $priv_member = -15; - public $public_member = -15; - }, + cr::__set_state(array( + 'priv_member' => -15, + 'public_member' => -15, + )), ); var_dump(array_intersect($a, $b); array(0) { @@ -626,57 +626,57 @@ end ------------ array_intersect() ---------------------------- begin ------------ array_uintersect() --------------------------- $a=array ( '0.1' => - class cr { - private $priv_member = 9; - public $public_member = 9; - }, + cr::__set_state(array( + 'priv_member' => 9, + 'public_member' => 9, + )), '0.5' => - class cr { - private $priv_member = 12; - public $public_member = 12; - }, + cr::__set_state(array( + 'priv_member' => 12, + 'public_member' => 12, + )), 0 => - class cr { - private $priv_member = 23; - public $public_member = 23; - }, + cr::__set_state(array( + 'priv_member' => 23, + 'public_member' => 23, + )), 1 => - class cr { - private $priv_member = 4; - public $public_member = 4; - }, + cr::__set_state(array( + 'priv_member' => 4, + 'public_member' => 4, + )), 2 => - class cr { - private $priv_member = -15; - public $public_member = -15; - }, + cr::__set_state(array( + 'priv_member' => -15, + 'public_member' => -15, + )), ); $b=array ( '0.2' => - class cr { - private $priv_member = 9; - public $public_member = 9; - }, + cr::__set_state(array( + 'priv_member' => 9, + 'public_member' => 9, + )), '0.5' => - class cr { - private $priv_member = 22; - public $public_member = 22; - }, + cr::__set_state(array( + 'priv_member' => 22, + 'public_member' => 22, + )), 0 => - class cr { - private $priv_member = 3; - public $public_member = 3; - }, + cr::__set_state(array( + 'priv_member' => 3, + 'public_member' => 3, + )), 1 => - class cr { - private $priv_member = 4; - public $public_member = 4; - }, + cr::__set_state(array( + 'priv_member' => 4, + 'public_member' => 4, + )), 2 => - class cr { - private $priv_member = -15; - public $public_member = -15; - }, + cr::__set_state(array( + 'priv_member' => -15, + 'public_member' => -15, + )), ); var_dump(array_uintersect($a, $b, "comp_func_cr")); array(3) { @@ -706,57 +706,57 @@ end ------------ array_uintersect() --------------------------- begin ------------ array_intersect_assoc() ---------------------- $a=array ( '0.1' => - class cr { - private $priv_member = 9; - public $public_member = 9; - }, + cr::__set_state(array( + 'priv_member' => 9, + 'public_member' => 9, + )), '0.5' => - class cr { - private $priv_member = 12; - public $public_member = 12; - }, + cr::__set_state(array( + 'priv_member' => 12, + 'public_member' => 12, + )), 0 => - class cr { - private $priv_member = 23; - public $public_member = 23; - }, + cr::__set_state(array( + 'priv_member' => 23, + 'public_member' => 23, + )), 1 => - class cr { - private $priv_member = 4; - public $public_member = 4; - }, + cr::__set_state(array( + 'priv_member' => 4, + 'public_member' => 4, + )), 2 => - class cr { - private $priv_member = -15; - public $public_member = -15; - }, + cr::__set_state(array( + 'priv_member' => -15, + 'public_member' => -15, + )), ); $b=array ( '0.2' => - class cr { - private $priv_member = 9; - public $public_member = 9; - }, + cr::__set_state(array( + 'priv_member' => 9, + 'public_member' => 9, + )), '0.5' => - class cr { - private $priv_member = 22; - public $public_member = 22; - }, + cr::__set_state(array( + 'priv_member' => 22, + 'public_member' => 22, + )), 0 => - class cr { - private $priv_member = 3; - public $public_member = 3; - }, + cr::__set_state(array( + 'priv_member' => 3, + 'public_member' => 3, + )), 1 => - class cr { - private $priv_member = 4; - public $public_member = 4; - }, + cr::__set_state(array( + 'priv_member' => 4, + 'public_member' => 4, + )), 2 => - class cr { - private $priv_member = -15; - public $public_member = -15; - }, + cr::__set_state(array( + 'priv_member' => -15, + 'public_member' => -15, + )), ); var_dump(array_intersect_assoc($a, $b)); array(0) { @@ -765,57 +765,57 @@ end ------------ array_intersect_assoc() ---------------------- begin ------------ array_uintersect_assoc() --------------------- $a=array ( '0.1' => - class cr { - private $priv_member = 9; - public $public_member = 9; - }, + cr::__set_state(array( + 'priv_member' => 9, + 'public_member' => 9, + )), '0.5' => - class cr { - private $priv_member = 12; - public $public_member = 12; - }, + cr::__set_state(array( + 'priv_member' => 12, + 'public_member' => 12, + )), 0 => - class cr { - private $priv_member = 23; - public $public_member = 23; - }, + cr::__set_state(array( + 'priv_member' => 23, + 'public_member' => 23, + )), 1 => - class cr { - private $priv_member = 4; - public $public_member = 4; - }, + cr::__set_state(array( + 'priv_member' => 4, + 'public_member' => 4, + )), 2 => - class cr { - private $priv_member = -15; - public $public_member = -15; - }, + cr::__set_state(array( + 'priv_member' => -15, + 'public_member' => -15, + )), ); $b=array ( '0.2' => - class cr { - private $priv_member = 9; - public $public_member = 9; - }, + cr::__set_state(array( + 'priv_member' => 9, + 'public_member' => 9, + )), '0.5' => - class cr { - private $priv_member = 22; - public $public_member = 22; - }, + cr::__set_state(array( + 'priv_member' => 22, + 'public_member' => 22, + )), 0 => - class cr { - private $priv_member = 3; - public $public_member = 3; - }, + cr::__set_state(array( + 'priv_member' => 3, + 'public_member' => 3, + )), 1 => - class cr { - private $priv_member = 4; - public $public_member = 4; - }, + cr::__set_state(array( + 'priv_member' => 4, + 'public_member' => 4, + )), 2 => - class cr { - private $priv_member = -15; - public $public_member = -15; - }, + cr::__set_state(array( + 'priv_member' => -15, + 'public_member' => -15, + )), ); var_dump(array_uintersect_assoc($a, $b, "comp_func_cr")); array(2) { @@ -838,57 +838,57 @@ end ------------ array_uintersect_assoc() --------------------- begin ------------ array_intersect_uassoc() --------------------- $a=array ( '0.1' => - class cr { - private $priv_member = 9; - public $public_member = 9; - }, + cr::__set_state(array( + 'priv_member' => 9, + 'public_member' => 9, + )), '0.5' => - class cr { - private $priv_member = 12; - public $public_member = 12; - }, + cr::__set_state(array( + 'priv_member' => 12, + 'public_member' => 12, + )), 0 => - class cr { - private $priv_member = 23; - public $public_member = 23; - }, + cr::__set_state(array( + 'priv_member' => 23, + 'public_member' => 23, + )), 1 => - class cr { - private $priv_member = 4; - public $public_member = 4; - }, + cr::__set_state(array( + 'priv_member' => 4, + 'public_member' => 4, + )), 2 => - class cr { - private $priv_member = -15; - public $public_member = -15; - }, + cr::__set_state(array( + 'priv_member' => -15, + 'public_member' => -15, + )), ); $b=array ( '0.2' => - class cr { - private $priv_member = 9; - public $public_member = 9; - }, + cr::__set_state(array( + 'priv_member' => 9, + 'public_member' => 9, + )), '0.5' => - class cr { - private $priv_member = 22; - public $public_member = 22; - }, + cr::__set_state(array( + 'priv_member' => 22, + 'public_member' => 22, + )), 0 => - class cr { - private $priv_member = 3; - public $public_member = 3; - }, + cr::__set_state(array( + 'priv_member' => 3, + 'public_member' => 3, + )), 1 => - class cr { - private $priv_member = 4; - public $public_member = 4; - }, + cr::__set_state(array( + 'priv_member' => 4, + 'public_member' => 4, + )), 2 => - class cr { - private $priv_member = -15; - public $public_member = -15; - }, + cr::__set_state(array( + 'priv_member' => -15, + 'public_member' => -15, + )), ); var_dump(array_intersect_uassoc($a, $b, "comp_func")); array(0) { @@ -897,57 +897,57 @@ end ------------ array_intersect_uassoc() --------------------- begin ------------ array_uintersect_uassoc() with ordinary func - $a=array ( '0.1' => - class cr { - private $priv_member = 9; - public $public_member = 9; - }, + cr::__set_state(array( + 'priv_member' => 9, + 'public_member' => 9, + )), '0.5' => - class cr { - private $priv_member = 12; - public $public_member = 12; - }, + cr::__set_state(array( + 'priv_member' => 12, + 'public_member' => 12, + )), 0 => - class cr { - private $priv_member = 23; - public $public_member = 23; - }, + cr::__set_state(array( + 'priv_member' => 23, + 'public_member' => 23, + )), 1 => - class cr { - private $priv_member = 4; - public $public_member = 4; - }, + cr::__set_state(array( + 'priv_member' => 4, + 'public_member' => 4, + )), 2 => - class cr { - private $priv_member = -15; - public $public_member = -15; - }, + cr::__set_state(array( + 'priv_member' => -15, + 'public_member' => -15, + )), ); $b=array ( '0.2' => - class cr { - private $priv_member = 9; - public $public_member = 9; - }, + cr::__set_state(array( + 'priv_member' => 9, + 'public_member' => 9, + )), '0.5' => - class cr { - private $priv_member = 22; - public $public_member = 22; - }, + cr::__set_state(array( + 'priv_member' => 22, + 'public_member' => 22, + )), 0 => - class cr { - private $priv_member = 3; - public $public_member = 3; - }, + cr::__set_state(array( + 'priv_member' => 3, + 'public_member' => 3, + )), 1 => - class cr { - private $priv_member = 4; - public $public_member = 4; - }, + cr::__set_state(array( + 'priv_member' => 4, + 'public_member' => 4, + )), 2 => - class cr { - private $priv_member = -15; - public $public_member = -15; - }, + cr::__set_state(array( + 'priv_member' => -15, + 'public_member' => -15, + )), ); var_dump(array_uintersect_uassoc($a, $b, "comp_func_cr", "comp_func")); array(2) { @@ -970,57 +970,57 @@ end ------------ array_uintersect_uassoc() with ordinary func - begin ------------ array_uintersect_uassoc() with method -------- $a=array ( '0.1' => - class cr { - private $priv_member = 9; - public $public_member = 9; - }, + cr::__set_state(array( + 'priv_member' => 9, + 'public_member' => 9, + )), '0.5' => - class cr { - private $priv_member = 12; - public $public_member = 12; - }, + cr::__set_state(array( + 'priv_member' => 12, + 'public_member' => 12, + )), 0 => - class cr { - private $priv_member = 23; - public $public_member = 23; - }, + cr::__set_state(array( + 'priv_member' => 23, + 'public_member' => 23, + )), 1 => - class cr { - private $priv_member = 4; - public $public_member = 4; - }, + cr::__set_state(array( + 'priv_member' => 4, + 'public_member' => 4, + )), 2 => - class cr { - private $priv_member = -15; - public $public_member = -15; - }, + cr::__set_state(array( + 'priv_member' => -15, + 'public_member' => -15, + )), ); $b=array ( '0.2' => - class cr { - private $priv_member = 9; - public $public_member = 9; - }, + cr::__set_state(array( + 'priv_member' => 9, + 'public_member' => 9, + )), '0.5' => - class cr { - private $priv_member = 22; - public $public_member = 22; - }, + cr::__set_state(array( + 'priv_member' => 22, + 'public_member' => 22, + )), 0 => - class cr { - private $priv_member = 3; - public $public_member = 3; - }, + cr::__set_state(array( + 'priv_member' => 3, + 'public_member' => 3, + )), 1 => - class cr { - private $priv_member = 4; - public $public_member = 4; - }, + cr::__set_state(array( + 'priv_member' => 4, + 'public_member' => 4, + )), 2 => - class cr { - private $priv_member = -15; - public $public_member = -15; - }, + cr::__set_state(array( + 'priv_member' => -15, + 'public_member' => -15, + )), ); var_dump(array_uintersect_uassoc($a, $b, array("cr", "comp_func_cr"), "comp_func")); array(2) { diff --git a/ext/standard/tests/array/var_export.phpt b/ext/standard/tests/array/var_export.phpt index d5acf9dada..acfec76991 100644 --- a/ext/standard/tests/array/var_export.phpt +++ b/ext/standard/tests/array/var_export.phpt @@ -6,6 +6,6 @@ $a = (object) array (1, 3, "foo" => "bar"); var_export($a); ?> --EXPECT-- -class stdClass { - public $foo = 'bar'; -} +stdClass::__set_state(array( + 'foo' => 'bar', +)) diff --git a/ext/standard/tests/array/var_export3.phpt b/ext/standard/tests/array/var_export3.phpt new file mode 100644 index 0000000000..6d39946916 --- /dev/null +++ b/ext/standard/tests/array/var_export3.phpt @@ -0,0 +1,24 @@ +--TEST-- +var_export() and classes +--FILE-- +mann = 42; + $this->kvinne = 43; + } +} + +$kake = new kake; + +var_export($kake); +?> +--EXPECT-- +kake::__set_state(array( + 'mann' => 42, + 'kvinne' => 43, +)) diff --git a/ext/standard/var.c b/ext/standard/var.c index 4fbead5034..809365545e 100644 --- a/ext/standard/var.c +++ b/ext/standard/var.c @@ -497,18 +497,9 @@ static int php_object_element_export(zval **zv, int num_args, va_list args, zend if (hash_key->nKeyLength != 0) { php_printf("%*c", level + 1, ' '); zend_u_unmangle_property_name(hash_key->type, hash_key->u.string, &class_name, &prop_name); - if (class_name) { - if (class_name[0] == '*') { - php_printf("protected"); - } else { - php_printf("private"); - } - } else { - php_printf("public"); - } - php_printf(" $%R = ", hash_key->type, prop_name); + php_printf(" '%R' => ", hash_key->type, prop_name); php_var_export(zv, level + 2 TSRMLS_CC); - PUTS (";\n"); + PUTS (",\n"); } return 0; } @@ -564,7 +555,7 @@ PHPAPI void php_var_export(zval **struc, int level TSRMLS_DC) php_printf("\n%*c", level - 1, ' '); } Z_OBJ_HANDLER(**struc, get_class_name)(*struc, &class_name, &class_name_len, 0 TSRMLS_CC); - php_printf ("class %v {\n", class_name); + php_printf ("%v::__set_state(array(\n", class_name); efree(class_name); if (myht) { zend_hash_apply_with_arguments(myht, (apply_func_args_t) php_object_element_export, 1, level); @@ -572,7 +563,7 @@ PHPAPI void php_var_export(zval **struc, int level TSRMLS_DC) if (level > 1) { php_printf("%*c", level - 1, ' '); } - PUTS("}"); + php_printf ("))"); break; default: PUTS ("NULL"); -- 2.40.0