bug79022.phpt 740 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. --TEST--
  2. Bug #79022 (class_exists returns True for classes that are not ready to be used)
  3. --FILE--
  4. <?php
  5. function my_autoloader($class) {
  6. if (class_exists('Foo', 0)) {
  7. new Foo();
  8. }
  9. if ($class == 'Foo') {
  10. eval("class Foo extends Bar{}");
  11. }
  12. if ($class == 'Bar') {
  13. eval("class Bar {}");
  14. }
  15. if ($class == 'Dummy') {
  16. eval ("class Dummy implements iFoo {}");
  17. }
  18. if (interface_exists('iFoo', 0)) {
  19. new Dummy();
  20. }
  21. if ($class == 'iFoo') {
  22. eval ("interface iFoo extends iBar {}");
  23. }
  24. if ($class == 'iBar') {
  25. eval ("interface iBar {}");
  26. }
  27. }
  28. spl_autoload_register('my_autoloader');
  29. new Foo();
  30. new Dummy();
  31. echo "okey";
  32. ?>
  33. --EXPECT--
  34. okey