catch_004.phpt 595 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. --TEST--
  2. Catching an exception in a constructor inside a static method
  3. --FILE--
  4. <?php
  5. class MyObject
  6. {
  7. function fail()
  8. {
  9. throw new Exception();
  10. }
  11. function __construct()
  12. {
  13. self::fail();
  14. echo __METHOD__ . "() Must not be reached\n";
  15. }
  16. function __destruct()
  17. {
  18. echo __METHOD__ . "() Must not be called\n";
  19. }
  20. static function test()
  21. {
  22. try
  23. {
  24. new MyObject();
  25. }
  26. catch(Exception $e)
  27. {
  28. echo "Caught\n";
  29. }
  30. }
  31. }
  32. MyObject::test();
  33. ?>
  34. --EXPECT--
  35. Caught