serialization.phpt 673 B

12345678910111213141516171819202122232425262728293031323334
  1. --TEST--
  2. Serialization of readonly properties
  3. --FILE--
  4. <?php
  5. class Test {
  6. public function __construct(
  7. public readonly int $prop = 1,
  8. ) {}
  9. }
  10. var_dump($s = serialize(new Test));
  11. var_dump(unserialize($s));
  12. // Readonly properties receive no special handling.
  13. // What happens during unserialization stays in unserialization.
  14. var_dump(unserialize("O:4:\"Test\":1:{s:4:\"prop\";i:2;}"));
  15. var_dump(unserialize("O:4:\"Test\":2:{s:4:\"prop\";i:2;s:4:\"prop\";i:3;}"));
  16. ?>
  17. --EXPECT--
  18. string(30) "O:4:"Test":1:{s:4:"prop";i:1;}"
  19. object(Test)#1 (1) {
  20. ["prop"]=>
  21. int(1)
  22. }
  23. object(Test)#1 (1) {
  24. ["prop"]=>
  25. int(2)
  26. }
  27. object(Test)#1 (1) {
  28. ["prop"]=>
  29. int(3)
  30. }