Home > PHP

PHPで多重ループを抜ける

2011.09.03 21:10
 プログラムなおっさん達は行きたいところへGOTOというものがありまして、これは便利でもあり結局不便でもありで、ここ最近のWebベースのプログラムでは殆ど使われなくなってしまったのですが、しかしどうしてだかGOTO文がいろんな言語で使えるようになっていたり、また使えるようになっているのに誰も使わなかったりということになっています。今調べてみたらPHP5.3からサポートされていたみたいです。
 CとかBasicやっていた人間にとってはGOTO文がないプログラム言語なんておかしいということなのですが、PHPもまた多重ループを抜けるのにちょっと妙な方法を使うみたいです。便利なんだか不便なんだかわかりませんが。
 ループの割り込み処理(とはPHPではあんまり言いませんが)は、基本的にcontinueとbreakを使います。これはperlのnextとlastにあたります。なんかもう英語とドイツ語を同時に学んでいるみたいで頭が混乱します。

[ break 2 ]
for ($i = 0; $i<5; $i++){
    for ($n=0; $n<5; $n++) {
        if ($i==1 && $n==3) {
            break 2;
        }
    }
}

[ continue 2 ]
for ($i = 0; $i<5; $i++) {
    for ($n=0; $n<5; $n++) {
        if ($n==2){
            continue 2;
        }
    }
}
要は簡単で、抜ける位置からのループの数を指定してやればいいだけです。勿論whileでもforeachでもループしているところだったら同様に使えます。





プロフィール



  • Name :: 山上オサム ♂(39)
  • Hobby :: 武術
  • Work :: Web Designer