bug71617.phpt 831 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. --TEST--
  2. Bug #71617: private properties lost when unserializing ArrayObject
  3. --FILE--
  4. <?php
  5. class Test extends ArrayObject
  6. {
  7. private $name = null;
  8. public function __construct(array $input)
  9. {
  10. parent::__construct($input, ArrayObject::ARRAY_AS_PROPS);
  11. }
  12. public function setName($name)
  13. {
  14. $this->name = $name;
  15. return $this;
  16. }
  17. public function getName()
  18. {
  19. return $this->name;
  20. }
  21. }
  22. $test = new Test(['a' => 'a', 'b' => 'b']);
  23. $test->setName('ok');
  24. $ser = serialize($test);
  25. $unSer = unserialize($ser);
  26. var_dump($unSer->getName());
  27. var_dump($unSer);
  28. ?>
  29. --EXPECT--
  30. string(2) "ok"
  31. object(Test)#2 (2) {
  32. ["name":"Test":private]=>
  33. string(2) "ok"
  34. ["storage":"ArrayObject":private]=>
  35. array(2) {
  36. ["a"]=>
  37. string(1) "a"
  38. ["b"]=>
  39. string(1) "b"
  40. }
  41. }