autoload_018.phpt 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. --TEST--
  2. Ensure __autoload() allows for recursive calls if the class name differs.
  3. --FILE--
  4. <?php
  5. spl_autoload_register(function ($name) {
  6. echo "IN: autoload($name)\n";
  7. static $i = 0;
  8. if ($i++ > 10) {
  9. echo "-> Recursion detected - as expected.\n";
  10. return;
  11. }
  12. class_exists('UndefinedClass' . $i);
  13. echo "OUT: autoload($name)\n";
  14. });
  15. var_dump(class_exists('UndefinedClass0'));
  16. ?>
  17. --EXPECT--
  18. IN: autoload(UndefinedClass0)
  19. IN: autoload(UndefinedClass1)
  20. IN: autoload(UndefinedClass2)
  21. IN: autoload(UndefinedClass3)
  22. IN: autoload(UndefinedClass4)
  23. IN: autoload(UndefinedClass5)
  24. IN: autoload(UndefinedClass6)
  25. IN: autoload(UndefinedClass7)
  26. IN: autoload(UndefinedClass8)
  27. IN: autoload(UndefinedClass9)
  28. IN: autoload(UndefinedClass10)
  29. IN: autoload(UndefinedClass11)
  30. -> Recursion detected - as expected.
  31. OUT: autoload(UndefinedClass10)
  32. OUT: autoload(UndefinedClass9)
  33. OUT: autoload(UndefinedClass8)
  34. OUT: autoload(UndefinedClass7)
  35. OUT: autoload(UndefinedClass6)
  36. OUT: autoload(UndefinedClass5)
  37. OUT: autoload(UndefinedClass4)
  38. OUT: autoload(UndefinedClass3)
  39. OUT: autoload(UndefinedClass2)
  40. OUT: autoload(UndefinedClass1)
  41. OUT: autoload(UndefinedClass0)
  42. bool(false)