【php】try{return}finally

参考記事:(http://postd.cc/try-return-finally/)

※ 確認:php7

php で試してみました。

まずは普通の

<?php
try
{
    echo 1 ;
}
finally
{
    echo 2 ;
}
echo 3 ; 

これは、

123

と表示されます。

次は return を実行。

<?php
try
{
    echo 1 ;
    return ;
}
finally
{
    echo 2 ;
}
echo 3 ; 

これは、

12

と表示されます。

んで、次は exit 。

<?php
try
{
    echo 1 ;
    exit ;
}
finally
{
    echo 2 ;
}
echo 3 ; 

これは、

1

と表示されます。

return は(戻り先の)処理内で終了処理を行うので、 finally までしっかり実行されますが、

exit は即時終了なので finally は実行されません。

(die も exit と同じ挙動です。)

クイズみたいに他の人に出すと面白いかも。