catch_finally_003.phpt 618 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. --TEST--
  2. Try catch finally (with multi-returns)
  3. --FILE--
  4. <?php
  5. function dummy($msg) {
  6. var_dump($msg);
  7. }
  8. function foo ($a) {
  9. try {
  10. dummy("try");
  11. return $a;
  12. } catch (Exception $e) {
  13. throw $e;
  14. } finally {
  15. dummy("finally");
  16. return "finally";
  17. }
  18. return "end";
  19. }
  20. function &bar($a) {
  21. try {
  22. echo "try\n";
  23. throw new Exception("ex");
  24. } catch (Exception $e) {
  25. } finally {
  26. return $a;
  27. }
  28. return ($c = "end");
  29. }
  30. var_dump(foo("para"));
  31. var_dump(bar("para"));
  32. ?>
  33. --EXPECT--
  34. string(3) "try"
  35. string(7) "finally"
  36. string(7) "finally"
  37. try
  38. string(4) "para"