bug37667.phpt 898 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. --TEST--
  2. Bug #37667 (Object is not added into array returned by __get)
  3. --FILE--
  4. <?php
  5. class Test
  6. {
  7. protected $property = array('foo' => 'bar');
  8. function __get($name)
  9. {
  10. return $this->property;
  11. }
  12. }
  13. $obj = new Test;
  14. var_dump($obj->property['foo']);
  15. var_dump($obj->property[2]);
  16. var_dump($obj);
  17. $obj->property[] = 1;
  18. $obj->property[] = 2;
  19. var_dump($obj);
  20. ?>
  21. --EXPECTF--
  22. string(3) "bar"
  23. Warning: Undefined array key 2 in %s on line %d
  24. NULL
  25. object(Test)#%d (1) {
  26. ["property":protected]=>
  27. array(1) {
  28. ["foo"]=>
  29. string(3) "bar"
  30. }
  31. }
  32. Notice: Indirect modification of overloaded property Test::$property has no effect in %sbug37667.php on line 20
  33. Notice: Indirect modification of overloaded property Test::$property has no effect in %sbug37667.php on line 21
  34. object(Test)#%d (1) {
  35. ["property":protected]=>
  36. array(1) {
  37. ["foo"]=>
  38. string(3) "bar"
  39. }
  40. }