1--TEST-- 2Test var_export() function with valid objects 3--FILE-- 4<?php 5echo "*** Testing var_export() with valid objects ***\n"; 6 7// class with no members 8class foo 9{ 10// no members 11} 12 13// abstract class 14abstract class abstractClass 15{ 16 abstract protected function getClassName(); 17 public function printClassName () { 18 echo $this->getClassName() . "\n"; 19 } 20} 21// implement abstract class 22class concreteClass extends abstractClass 23{ 24 protected function getClassName() { 25 return "concreteClass"; 26 } 27} 28 29// interface class 30interface iValue 31{ 32 public function setVal ($name, $val); 33 public function dumpVal (); 34} 35// implement the interface 36class Value implements iValue 37{ 38 private $vars = array (); 39 40 public function setVal ( $name, $val ) { 41 $this->vars[$name] = $val; 42 } 43 44 public function dumpVal () { 45 var_export ( $vars ); 46 } 47} 48 49// a gereral class 50class myClass 51{ 52 var $foo_object; 53 public $public_var; 54 public $public_var1; 55 private $private_var; 56 protected $protected_var; 57 58 function __construct ( ) { 59 $this->foo_object = new foo(); 60 $this->public_var = 10; 61 $this->public_var1 = new foo(); 62 $this->private_var = new foo(); 63 $this->protected_var = new foo(); 64 } 65} 66 67// create a object of each class defined above 68$myClass_object = new myClass(); 69$foo_object = new foo(); 70$Value_object = new Value(); 71$concreteClass_object = new concreteClass(); 72 73$valid_objects = array( 74 "new stdclass" => new stdclass, 75 "new foo" => new foo, 76 "new concreteClass" => new concreteClass, 77 "new Value" => new Value, 78 "new myClass" => new myClass, 79 "myClass_object" => $myClass_object, 80 "myClass_object->foo_object" => $myClass_object->foo_object, 81 "myClass_object->public_var1" => $myClass_object->public_var1, 82 "foo_object" => $foo_object, 83 "Value_object" => $Value_object, 84 "concreteClass_object" => $concreteClass_object 85 ); 86/* Loop to check for above objects with var_export() */ 87echo "\n*** Output for objects ***\n"; 88foreach($valid_objects as $key => $obj) { 89 echo "\n-- Iteration: $key --\n"; 90 var_export( $obj ); 91 echo "\n"; 92 var_export( $obj, FALSE); 93 echo "\n"; 94 var_dump( var_export( $obj, TRUE) ); 95 echo "\n"; 96} 97?> 98--EXPECT-- 99*** Testing var_export() with valid objects *** 100 101*** Output for objects *** 102 103-- Iteration: new stdclass -- 104(object) array( 105) 106(object) array( 107) 108string(17) "(object) array( 109)" 110 111 112-- Iteration: new foo -- 113\foo::__set_state(array( 114)) 115\foo::__set_state(array( 116)) 117string(27) "\foo::__set_state(array( 118))" 119 120 121-- Iteration: new concreteClass -- 122\concreteClass::__set_state(array( 123)) 124\concreteClass::__set_state(array( 125)) 126string(37) "\concreteClass::__set_state(array( 127))" 128 129 130-- Iteration: new Value -- 131\Value::__set_state(array( 132 'vars' => 133 array ( 134 ), 135)) 136\Value::__set_state(array( 137 'vars' => 138 array ( 139 ), 140)) 141string(58) "\Value::__set_state(array( 142 'vars' => 143 array ( 144 ), 145))" 146 147 148-- Iteration: new myClass -- 149\myClass::__set_state(array( 150 'foo_object' => 151 \foo::__set_state(array( 152 )), 153 'public_var' => 10, 154 'public_var1' => 155 \foo::__set_state(array( 156 )), 157 'private_var' => 158 \foo::__set_state(array( 159 )), 160 'protected_var' => 161 \foo::__set_state(array( 162 )), 163)) 164\myClass::__set_state(array( 165 'foo_object' => 166 \foo::__set_state(array( 167 )), 168 'public_var' => 10, 169 'public_var1' => 170 \foo::__set_state(array( 171 )), 172 'private_var' => 173 \foo::__set_state(array( 174 )), 175 'protected_var' => 176 \foo::__set_state(array( 177 )), 178)) 179string(271) "\myClass::__set_state(array( 180 'foo_object' => 181 \foo::__set_state(array( 182 )), 183 'public_var' => 10, 184 'public_var1' => 185 \foo::__set_state(array( 186 )), 187 'private_var' => 188 \foo::__set_state(array( 189 )), 190 'protected_var' => 191 \foo::__set_state(array( 192 )), 193))" 194 195 196-- Iteration: myClass_object -- 197\myClass::__set_state(array( 198 'foo_object' => 199 \foo::__set_state(array( 200 )), 201 'public_var' => 10, 202 'public_var1' => 203 \foo::__set_state(array( 204 )), 205 'private_var' => 206 \foo::__set_state(array( 207 )), 208 'protected_var' => 209 \foo::__set_state(array( 210 )), 211)) 212\myClass::__set_state(array( 213 'foo_object' => 214 \foo::__set_state(array( 215 )), 216 'public_var' => 10, 217 'public_var1' => 218 \foo::__set_state(array( 219 )), 220 'private_var' => 221 \foo::__set_state(array( 222 )), 223 'protected_var' => 224 \foo::__set_state(array( 225 )), 226)) 227string(271) "\myClass::__set_state(array( 228 'foo_object' => 229 \foo::__set_state(array( 230 )), 231 'public_var' => 10, 232 'public_var1' => 233 \foo::__set_state(array( 234 )), 235 'private_var' => 236 \foo::__set_state(array( 237 )), 238 'protected_var' => 239 \foo::__set_state(array( 240 )), 241))" 242 243 244-- Iteration: myClass_object->foo_object -- 245\foo::__set_state(array( 246)) 247\foo::__set_state(array( 248)) 249string(27) "\foo::__set_state(array( 250))" 251 252 253-- Iteration: myClass_object->public_var1 -- 254\foo::__set_state(array( 255)) 256\foo::__set_state(array( 257)) 258string(27) "\foo::__set_state(array( 259))" 260 261 262-- Iteration: foo_object -- 263\foo::__set_state(array( 264)) 265\foo::__set_state(array( 266)) 267string(27) "\foo::__set_state(array( 268))" 269 270 271-- Iteration: Value_object -- 272\Value::__set_state(array( 273 'vars' => 274 array ( 275 ), 276)) 277\Value::__set_state(array( 278 'vars' => 279 array ( 280 ), 281)) 282string(58) "\Value::__set_state(array( 283 'vars' => 284 array ( 285 ), 286))" 287 288 289-- Iteration: concreteClass_object -- 290\concreteClass::__set_state(array( 291)) 292\concreteClass::__set_state(array( 293)) 294string(37) "\concreteClass::__set_state(array( 295))" 296