try_catch_finally_003.phpt 623 B

123456789101112131415161718192021222324252627282930313233343536
  1. --TEST--
  2. Try catch finally (multi catch blocks with return)
  3. --FILE--
  4. <?php
  5. class AE extends Exception {};
  6. class BE extends Exception {};
  7. function foo () {
  8. try {
  9. try {
  10. try {
  11. throw new Exception("try");
  12. } catch (AE $e) {
  13. die("error");
  14. } finally {
  15. echo "1";
  16. }
  17. } finally {
  18. echo "2";
  19. }
  20. } catch (BE $e) {
  21. die("error");
  22. } catch (Exception $e) {
  23. echo "3";
  24. } finally {
  25. echo "4";
  26. return 4;
  27. }
  28. return 5;
  29. }
  30. var_dump(foo());
  31. ?>
  32. --EXPECTF--
  33. 1234int(4)