serialize_property_tables.phpt 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. --TEST--
  2. Serialization of properties should not deal INDIRECT entries to userland
  3. --FILE--
  4. <?php
  5. class MyArrayObject extends ArrayObject {
  6. private $unused = 123;
  7. public function __construct(array $array)
  8. {
  9. parent::__construct($array, 1);
  10. }
  11. }
  12. class MySplDoublyLinkedList extends SplDoublyLinkedList {
  13. private $unused = 123;
  14. }
  15. class MySplObjectStorage extends SplObjectStorage {
  16. private $unused = 123;
  17. }
  18. $x = new MyArrayObject([]);
  19. var_dump($x->__serialize());
  20. $x = new MySplDoublyLinkedList();
  21. var_dump($x->__serialize());
  22. $x = new MySplObjectStorage();
  23. var_dump($x->__serialize());
  24. ?>
  25. --EXPECTF--
  26. array(4) {
  27. [0]=>
  28. int(1)
  29. [1]=>
  30. array(0) {
  31. }
  32. [2]=>
  33. array(1) {
  34. ["%0MyArrayObject%0unused"]=>
  35. int(123)
  36. }
  37. [3]=>
  38. NULL
  39. }
  40. array(3) {
  41. [0]=>
  42. int(0)
  43. [1]=>
  44. array(0) {
  45. }
  46. [2]=>
  47. array(1) {
  48. ["%0MySplDoublyLinkedList%0unused"]=>
  49. int(123)
  50. }
  51. }
  52. array(2) {
  53. [0]=>
  54. array(0) {
  55. }
  56. [1]=>
  57. array(1) {
  58. ["%0MySplObjectStorage%0unused"]=>
  59. int(123)
  60. }
  61. }