bug26737.phpt 705 B

12345678910111213141516171819202122
  1. --TEST--
  2. Bug #26737 (Protected and private variables are not saved on serialization when a user defined __sleep is used)
  3. --FILE--
  4. <?php
  5. class foo
  6. {
  7. private $private = 'private';
  8. protected $protected = 'protected';
  9. public $public = 'public';
  10. public function __sleep()
  11. {
  12. return array('private', 'protected', 'public', 'no_such');
  13. }
  14. }
  15. $foo = new foo();
  16. $data = serialize($foo);
  17. var_dump(str_replace("\0", '\0', $data));
  18. ?>
  19. --EXPECTF--
  20. Warning: serialize(): "no_such" returned as member variable from __sleep() but does not exist in %s on line %d
  21. string(114) "O:3:"foo":3:{s:12:"\0foo\0private";s:7:"private";s:12:"\0*\0protected";s:9:"protected";s:6:"public";s:6:"public";}"