1--TEST-- 2get_object_vars() no-declared/declared discrepancies 3--FILE-- 4<?php 5 6class Test { 7 public $prop; 8} 9 10// Using ArrayObject here to get around property name restrictions 11 12$obj = new stdClass; 13$ao = new ArrayObject($obj); 14$ao["\0A\0b"] = 42; 15$ao["\0*\0b"] = 24; 16$ao[12] = 6; 17var_dump(get_object_vars($obj)); 18 19$obj = new Test; 20$ao = new ArrayObject($obj); 21$ao["\0A\0b"] = 42; 22$ao["\0*\0b"] = 24; 23$ao[12] = 6; 24var_dump(get_object_vars($obj)); 25 26?> 27--EXPECTF-- 28array(3) { 29 ["%0A%0b"]=> 30 int(42) 31 ["%0*%0b"]=> 32 int(24) 33 [12]=> 34 int(6) 35} 36array(4) { 37 ["prop"]=> 38 NULL 39 ["%0A%0b"]=> 40 int(42) 41 ["%0*%0b"]=> 42 int(24) 43 [12]=> 44 int(6) 45} 46