PHP:ループの中で条件分岐のネストが深くなってしまったら?

ループの中で条件分岐のネストが多重になってしまうと非常に読みにくいので、continueを使って処理をはじいていきましょう。

以下の例で見ていきましょう!

改善前

<?php
foreach($items as $item){
  if($item == "条件1"){
    if($item == "条件2"){
      if($item== "条件3"){
        dosomething();
      } else {
        except3();
      }
    } else{
      except2();
    }
  } else {
    except1();
  }
  allways_do();
}

例えばこんな処理の時、foreachの中身がif文の3重ネストになっていますね。これを修正すると…

改善後

if文の中の判定条件を反転させて、条件に合わないものである場合、改善前にelseで行っていたとif文の下で常に行っていた処理を実行してcontinueでループの先頭に戻ります。 これをネストしていた分繰り返すと…

<?php
foreach($items as $item){
  if($item != "条件1"){
    except1();
    allways_do();
    continue;
  }

  if($item != "条件2"){
    except2();
    allways_do();
    continue;
  }
  if($item != "条件3"){
    except3();
    allways_do();
    continue;
  }

  dosomething();
  allways_do();
}

見にくかった3重の処理が見やすくなります。

AWSを利用した導入事例のご紹介

実際に構築を行ったAWSの事例を紹介しています。導入の目的に近い事例をご覧いただくと、実際の構成例やメリット、注意点などが把握できます。

ブックオフコーポレーション株式会社様
第一生命保険株式会社様
株式会社電通様
株式会社LIFULL様
株式会社リブセンス様
TBSアナウンス部様
明治大学様
拓殖大学様