autoload_018.phpt 1.3 KB

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