ctor_failure.phpt 504 B

123456789101112131415161718192021222324252627282930313233
  1. --TEST--
  2. ZE2 Do not call destructors if constructor fails
  3. --FILE--
  4. <?php
  5. class Test
  6. {
  7. function __construct($msg) {
  8. echo __METHOD__ . "($msg)\n";
  9. throw new Exception($msg);
  10. }
  11. function __destruct() {
  12. echo __METHOD__ . "\n";
  13. }
  14. }
  15. try
  16. {
  17. $o = new Test('Hello');
  18. unset($o);
  19. }
  20. catch (Exception $e)
  21. {
  22. echo 'Caught ' . get_class($e) . '(' . $e->getMessage() . ")\n";
  23. }
  24. ?>
  25. ===DONE===
  26. --EXPECT--
  27. Test::__construct(Hello)
  28. Caught Exception(Hello)
  29. ===DONE===