1--TEST-- 2Try catch finally (goto in try/catch block) 3--CREDITS-- 4adoy 5--FILE-- 6<?php 7function foo($ex = NULL) { 8 try { 9 try { 10 goto label; 11 } finally { 12 var_dump("finally1"); 13 if ($ex) throw $ex; 14 } 15 } catch (Exception $e) { 16 var_dump("caught"); 17 if ($ex) return "return1"; 18 } finally { 19 var_dump("finally2"); 20 } 21 22label: 23 var_dump("label"); 24 return "return2"; 25} 26 27var_dump(foo()); 28var_dump(foo(new Exception())); 29 30?> 31--EXPECT-- 32string(8) "finally1" 33string(8) "finally2" 34string(5) "label" 35string(7) "return2" 36string(8) "finally1" 37string(6) "caught" 38string(8) "finally2" 39string(7) "return1" 40