004.phpt 606 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. --TEST--
  2. json_encode() & endless loop - 2
  3. --SKIPIF--
  4. <?php if (!extension_loaded("json")) print "skip"; ?>
  5. --FILE--
  6. <?php
  7. $a = new stdclass;
  8. $a->prop = $a;
  9. var_dump($a);
  10. echo "\n";
  11. var_dump(json_encode($a));
  12. var_dump(json_last_error(), json_last_error_msg());
  13. echo "\n";
  14. var_dump(json_encode($a, JSON_PARTIAL_OUTPUT_ON_ERROR));
  15. var_dump(json_last_error(), json_last_error_msg());
  16. echo "Done\n";
  17. ?>
  18. --EXPECTF--
  19. object(stdClass)#%d (1) {
  20. ["prop"]=>
  21. *RECURSION*
  22. }
  23. bool(false)
  24. int(6)
  25. string(%d) "Recursion detected"
  26. string(22) "{"prop":{"prop":null}}"
  27. int(6)
  28. string(%d) "Recursion detected"
  29. Done