bug71835.phpt 576 B

12345678910111213141516171819202122232425
  1. --TEST--
  2. Bug #71835 (json_encode sometimes incorrectly detects recursion with JsonSerializable)
  3. --FILE--
  4. <?php
  5. class SomeClass implements JsonSerializable {
  6. public function jsonSerialize(): mixed {
  7. return [get_object_vars($this)];
  8. }
  9. }
  10. $class = new SomeClass;
  11. $arr = [$class];
  12. var_dump(json_encode($arr));
  13. class SomeClass2 implements JsonSerializable {
  14. public function jsonSerialize(): mixed {
  15. return [(array)$this];
  16. }
  17. }
  18. $class = new SomeClass2;
  19. $arr = [$class];
  20. var_dump(json_encode($arr));
  21. ?>
  22. --EXPECT--
  23. string(6) "[[[]]]"
  24. string(6) "[[[]]]"