autoload_005.phpt 913 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. --TEST--
  2. ZE2 Autoload from destructor
  3. --SKIPIF--
  4. <?php
  5. if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed');
  6. if (class_exists('autoload_root', false)) die('skip Autoload test classes exist already');
  7. ?>
  8. --FILE--
  9. <?php
  10. function __autoload($class_name)
  11. {
  12. var_dump(class_exists($class_name, false));
  13. require_once(dirname(__FILE__) . '/' . $class_name . '.p5c');
  14. echo __FUNCTION__ . '(' . $class_name . ")\n";
  15. }
  16. var_dump(class_exists('autoload_derived', false));
  17. var_dump(class_exists('autoload_derived', false));
  18. class Test
  19. {
  20. function __destruct() {
  21. echo __METHOD__ . "\n";
  22. $o = new autoload_derived;
  23. var_dump($o);
  24. }
  25. }
  26. $o = new Test;
  27. unset($o);
  28. ?>
  29. ===DONE===
  30. --EXPECTF--
  31. bool(false)
  32. bool(false)
  33. Test::__destruct
  34. bool(false)
  35. bool(false)
  36. __autoload(autoload_root)
  37. __autoload(autoload_derived)
  38. object(autoload_derived)#%d (0) {
  39. }
  40. ===DONE===