]> granicus.if.org Git - php/commitdiff
- Fixed bug #29361 (var_export() producing invalid code). (Derick)
authorDerick Rethans <derick@php.net>
Mon, 17 Oct 2005 14:38:12 +0000 (14:38 +0000)
committerDerick Rethans <derick@php.net>
Mon, 17 Oct 2005 14:38:12 +0000 (14:38 +0000)
NEWS
ext/standard/tests/array/007.phpt
ext/standard/tests/array/array_intersect_1.phpt
ext/standard/tests/array/var_export.phpt
ext/standard/tests/array/var_export3.phpt [new file with mode: 0644]
ext/standard/var.c

diff --git a/NEWS b/NEWS
index 573c9b68c0d9f1601e4649c0b7e9936cc6ceb3e2..52b02e57d2254cb53e77871114d158d2425c2f63 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -3,7 +3,8 @@ PHP                                                                        NEWS
 ?? Oct 2005, PHP 5.1 Release Candidate 3
 - Fixed bug #34873 (Segmentation Fault on foreach in object). (Dmitry)
 - Fixed bug #34884 (Possible crash in ext/sqlite when sqlite.assoc_case is 
-  being used). (Tony,Ilia)
+  being used). (Tony, Ilia)
+- Fixed bug #29361 (var_export() producing invalid code). (Derick)
 
 14 Oct 2005, PHP 5.1 Release Candidate 2
 - Changed SQLite extension to be a shared module in Windows distribution.
index 95479e18bb5f555231524dc0222316018c1ffc1a..0e5c32af28bbb94cce81d501db44516edc37c2a6 100644 (file)
@@ -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) {
index 1fed25dcb2f38dda3d44e801a2710f3b883e93d0..74c4828c2380dad4f26c0ed203ca15b8059e090c 100644 (file)
@@ -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) {
index d5acf9dada17eb379678b671af447be58ab95ab2..acfec7699198167a1562a267f0d200c6acbb5715 100644 (file)
@@ -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 (file)
index 0000000..6d39946
--- /dev/null
@@ -0,0 +1,24 @@
+--TEST--
+var_export() and classes
+--FILE--
+<?php
+class kake {
+       public $mann;
+       protected $kvinne;
+
+       function __construct()
+       {
+               $this->mann = 42;
+               $this->kvinne = 43;
+       }
+}
+
+$kake = new kake;
+
+var_export($kake);
+?>
+--EXPECT--
+kake::__set_state(array(
+   'mann' => 42,
+   'kvinne' => 43,
+))
index a908fd7769363a2b78569f63d9045e20577c9304..dcb98d3efdfd7fd4d28ab2dbb58917ad2df7704a 100644 (file)
@@ -352,18 +352,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_unmangle_property_name_ex(hash_key->arKey, hash_key->nKeyLength, &class_name, &prop_name);
-               if (class_name) {
-                       if (class_name[0] == '*') {
-                               php_printf("protected");
-                       } else {
-                               php_printf("private");
-                       }
-               } else {
-                       php_printf("public");
-               }
-               php_printf(" $%s = ", prop_name);
+               php_printf(" '%s' => ", prop_name);
                php_var_export(zv, level + 2 TSRMLS_CC);
-               PUTS (";\n");
+               PUTS (",\n");
        }
        return 0;
 }
@@ -414,7 +405,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 %s {\n", class_name);
+               php_printf ("%s::__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);
@@ -422,7 +413,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");