0%

Programmingプログラミングナレッジ

Posted:2019.11.22

PHPで使う条件分岐の書き方いろいろ

プログラミングでは基礎としてあげられるものの中で条件分岐の処理がありますが、PHPには様々な条件分岐の方法があります。基本的な目的としては、条件によって処理を切り分けるという点で同じなのですが、書き方も大きく異なり、それぞれのメリットもあります。今回はPHPで扱う様々な条件分岐の書き方についてまとめてみたいと思います。

 

if 〜 else 〜

PHPだけでなくいろんなプログラミング言語で用いられる条件分岐の基本となる書き方です。関数の中で処理を切り分けたり、出力する値を変えたりなど、汎用的に使える形になります。また、複雑な条件にも対応できます。ただし、条件の数が多くなったり、複数条件が重なる場合などはコードの見通しが悪くなることもあります。

【PHP】

<?php
 if( 条件A ) {
  // 条件Aの処理
 } else if( 条件B) {
  // 条件Bの処理
 }
?>

 

例としてはこのように、処理や値を条件で切り分ける場合などで使いやすいですね。コードも読みやすい形になります。

【PHP】

<?php
 $text = 'man';
 if($text === 'man') {
  echo '男性';
 } else if($text === 'woman') {
  echo '女性';
 }
 // 男性 と出力される
?>

 

 

if: 〜 else: 〜 endif;

PHPはもともとHTMLの拡張として誕生した背景もあり、HTMLの中に書くことができたりと、HTMLとの親和性が高いプログラミング言語です。この書き方の場合には、条件と処理の部分がタグ要素レベルで分かれているので、長い文字列を出力する場合や、HTMLの中に出力する場合などでとても書きやすくなります。

【PHP】

<?php if( 条件A ): ?>
 <!-- 条件Aの処理 -->
 <?php elseif( 条件B ): ?>
 <!-- 条件Bの処理 -->
<?php endif; ?>

 

例としては下記のようになります。HTMLを使った処理などが必要となっても、echoで文字列としてHTMLを用意しなくてもいいのでコードの見通しが良くなります。

【PHP】

<?php 
 $text = 'success';
 if($text === 'success'):
?>
 <p>テストの結果は合格です。処理は正常に行われています。</p>
 <?php elseif($text === 'error'): ?>
 <p>テストの結果は失敗です。処理中にエラーが発生しています。</p>
<?php endif; ?>

 

 

三項演算子

条件分岐というよりも、値の算出に近いものがありますが、条件が2通りしかなく、単純に値の切り替えを行う場合には三項演算子を使った書き方がすっきりとして便利です。

【PHP】

<?php 
 変数 = ( 条件 ) ? trueの値 : falseの値;
?>

 

このように、変数の代入に条件を加えて、条件に対応した値を用意しておきます。こうすることで条件によって値が変わり、条件も変わる度に値も切り替えることができます。トグル機能でclass名などを切り替える動作などに使いやすいのではないでしょうか。

【PHP】

<span class="
 <?php 
  $is_active = true;
  $result = ($is_active) ? 'active' : 'default';
  echo $result;
  // active と出力される
 ?>
">class名を条件で切り替える</span>

 

 

swtch case 〜

最後はswtch文を使った方法です。これまでのif文を使った方法とは書き方も少し異なります。まず値を決めて、その値の条件に合わせてそれぞれの処理を記述していく形になります。正しく条件分岐させるために、処理の後にはbreak句を忘れずに入れるようにします。最後にdefalt句を使うことで、どの条件にも当てはまらない場合の処理を定義することも可能です。

【PHP】

<?php
 switch ( 値 ) {
  case ( 条件A );
   // 条件Aの処理
   break;
  case ( 条件B );
   // 条件Bの処理
   break;
  default;
   // 全ての条件にマッチしない処理
 }
?>

 

この方法では下記のように条件の数が多い場合でもコードをすっきりとさせることができます。また、条件の比較が緩やかだったりするので、基本的には値を参照し、その値の条件で処理を切り分けるという方法になります。

【PHP】

<?php 
 switch ('tuesday') {
  case 'monday':
   echo '月曜日';
   break;
  case 'tuesday':
   echo '火曜日';
   break;
  case 'wednesday':
   echo '水曜日';
   break;
  case 'thursday':
   echo '木曜日';
   break;
  case 'friday':
   echo '金曜日';
   break;
  case 'saturday':
   echo '土曜日';
   break;
  case 'sunday':
   echo '日曜日';
   break;
  default:
   echo '何曜日ですか?';
   break;
 }
?>

 

 

使い分ける場面

このように同じ条件分岐を目的とした処理でも、書き方によって使いどころは大きく変わってきます。下記にはやや主観も入っていますが、PHPでの条件分岐における書き方の使い分けをまとめてみました。

【if 〜 else 〜】

関数などで一般的な処理として使ったり、複雑な条件や厳密さが必要になる場合など

 

【if: 〜 else: 〜 endif;】

HTMLとの親和性が求められる場合や、WordPressなどで独自タグを使う場合など

 

【三項演算子】

結果が2通りしかない場合で、トグル処理などで値の出力をスマートに切り替えたい場合など

 

【swtch case 〜】

値を参照する条件で、必要とされる分岐が多い場合など

 

WordPressを扱う場合には、ページテンプレートの中に処理を直接書いたり、CMS側で用意されている独自タグや関数をHTMLと並行で使うので、これらの使い分けが見やすいコードを書く上でのポイントになってきそうですね。

 


 

今回はPHPでの条件分岐の書き方についていろいろとまとめてみました。同じ条件分岐でもこれだけ書き方に違いがあるのはPHPの特徴ではないでしょうか。うまく使い分けることで、見通しの良いコードを書けるようにしていきたいですね。

author
この記事を書いた人オガワ シンヤ
FacebookTwitter

DesignSupply.代表 / ディレクター・ウェブデザイナー・フロントエンドエンジニアをやっています。「ウェブとデザインでヒト・モノ・サービスを繋げ新しい価値を生み出す」をコンセプトに日々奮闘中!制作中はチョコレートが欠かせない三十路Webクリエイター。

制作のご依頼やお問い合わせ・パートナー業務提携のご相談はこちら

デザインやウェブ制作についてのご依頼やご相談、その他お問い合わせなどもお気軽にご連絡ください。フットワークの軽さやレスポンスの早さ、また豊富な経験や知識、技術を活かした対応力といったフリーランスクリエイターの強みでクライアント様、パートナー企業様のお力になります。デザインからコーディングやWordPress実装といったウェブサイト構築はもちろん、写真撮影や動画編集、コンテンツ制作からサイト運用サポートまで一括してお任せください。

ホームページ制作のご検討やウェブ運用でお悩みの経営者様や企業のウェブ担当者様をはじめ、個人で店舗を営んでいらっしゃるオーナー様、フリーで活動されているビジネスオーナー様はもちろんのこと、リソース不足でお困りの制作会社様、またクリエイターをお探しの代理店様も大歓迎です。

コンタクトをご希望の方はお手数ですが、下記よりお問い合わせフォームのページへアクセスしていただき、必要事項を入力の上メッセージを送信してください。確認でき次第すぐに折り返しご連絡致します。

こんな記事も読まれています

コメントもお気軽にどうぞ

記事に関するご質問やご意見などありましたら下記のコメントフォームよりお気軽に投稿ください。なおメールアドレスは公開されませんのでご安心ください。また、* が付いている欄は必須項目となります。

内容に問題なければ、下記の「コメントを送信する」ボタンを押してください。

CAPTCHA


ページトップへ
大阪市天王寺区のホームページ制作デザイン事務所(SOHO)DesignSupply.【デザインサプライ】