PHP6でgoto文らしいですが

PHP6でgoto文が追加されることに関してDo You PHP?で扱っているのでふと使い道を考えてみた。

結果、3秒で思い当たったのがOpenCVの__BEGIN__,__END__。 こいつらはマクロでして、OpenCVについて語ってもしょうがない*1ので細かいことは割愛しますが

#define __BEGIN__       {
#define __END__         goto exit; exit: ; }
#define __CLEANUP__
#define EXIT            goto exit

ってな定義になっていてエラーが発生したときなんかにEXITするとブロックの外に行く仕組み。
そして、ブロックのそとでメモリ開放などの後処理をする。これで必ずメモリ開放される。…ということらしいです。例外処理(try catch finally)がないから苦肉の策でって感じですかね。

Cの話だけだとPHPerらしさに欠けるので、PHPでのgoto文の使い道を考えてみました。2つのDBに接続してアーダコーダで片方は必ずcommitとか。。ないかな?


冗談抜きで、使わなければいけない場面が分からない。。。
少しは参考に・・・・・・なりませんね。

*1:C言語だし