http://journal.mycom.co.jp/news/2009/01/08/037/index.html
エラー処理に使いたいということらしいが「ON ERROR GOTO」とかいったいいつの時代の言語の話をしているのか非常に頭が痛くなる。
で、こういうとき便利だよと示してるサンプルコードもひどい。
これ安全なcloseをしたいということなんだろうけど、こういうのはtry〜finallyがあればすむはず。まともに例外系を実装しないでGOTOへ逃げるあたりがPHPが馬鹿にされる原因だよなぁ。
そもそもこのサンプルだと、openに失敗していてもcloseへ飛ぶ気持ちの悪さもあるし、エラーがあろうがなかろうが何事もなかったかのように関数が終了する。いいのかそれで。
関数を実行して成功したか戻り値を見るIF文だらけのコードって開発効率悪いよね。PHP5って20年位前の言語じゃないんだからさぁ。例外出すように既存の関数のラッパークラスライブラリを整備してfinally使えるようになるだけでかなりよくなると思うんだよね。