こんにちは、
毎年のことですが、学生の時のようにラジオにはまっているサトウです。
さて、本題に入りたいと思います。
プログラミングを学習すると条件分岐する処理(○○であれば▲▲といった処理)を書く方も多いのではないでしょうか。phpでは「if文」を使って条件分岐の処理を書くことができます。
「if文」を書けるようになれば、独自に作成した処理内容・関数等にも応用させることも可能です。phpを学び始めた方や、「if」の書き方が 分からない方は、是非読んでみてくださいね。
目次
if文の書き方
PHPでは、if文を使うことで、条件に応じて処理を変えることができます。
早速実際の書き方を見ていきましょう。
if文の書き方
以下がif文の最も基本的な書き方になります。
if(条件){
条件を満たす場合に行う処理
}
コードサンプル
1 2 3 4 5 6 7 8 9 10 |
<?php // 変数に数値を格納 $int = 30; // if文の処理 // 変数:$intの中身が30であれば文字列を返す if($int === 30){ echo '変数の中身は30です'; } |
実行結果
この例だと「変数の中身が30」という条件に一致しているので、if文内の処理が実行されています。
使い方は比較的シンプルですよね。これがif文の最も基本的な型になります。
条件が複数あって分岐させたい時はelseやelseifを加えます。
if-else文の書き方
if(条件){
条件を満たす場合に行う処理
}else{
条件を満たさない場合の処理
}
コードサンプル
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php // 変数に数値を格納 $int = 77; // if文の処理 // 変数$intが90以上であれば「合格」 // そうでなければ「不合格」 if($int >= 90){ echo '合格'; }else{ echo '不合格'; } |
実行結果
この例は変数が90未満という条件に合致するので不合格という結果をを返しています。
さらに条件を分けたい場合はelseifも加えて以下のように書きます
if-elseif-else文の書き方
if(条件①){
条件①を満たす場合に行う処理
}elseif(条件②){
条件②を満たす場合に行う処理
}else{
条件①条件②を満たさない場合の処理
}
コード例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?php // 変数に数値を格納 $int = 80; // if文の処理 // 変数$intが90以上であれば「合格」 // そうでなければ「不合格」 if($int >= 90){ echo 'A判定です'; }elseif($int >= 70 && $int <90 ){//70以上90未満の場合 echo 'B判定です'; }else{ echo 'C判定です。'; } |
実行結果
この例は変数の中身が80なので、「B判定」に該当しています。
if-elseif-elseまで書くことができれば基本的な条件分岐の処理が可能になります。是非いくつか条件を当てはめて書く練習をしてみてください。
他にも色々な書き方が可能です。
省略して書く方法
if文はelse以下の条件がない場合、以下のように省略して書くこともできます。
コード例
1 2 3 4 5 6 7 |
<?php // 20以下なら「未成年です」を返す $age = 18; if($age <= 20) echo '未成年です'; ?> |
実行結果
演算子と組み合わせて使用するケース
if文は演算子と組み合わせて書くケースもあります。
以下では使用ケースが多い比較演算子(2つの変数を比較する書き方)を紹介します。
コード例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
<?php //**************************************************// // 比較演算子(よく使用する例) //**************************************************// // (1)等しい // 変数1 == 変数2 と書く echo '(1)結果<br>'; $int1 = 1; if($int1 ==1){ echo '変数の中身は「1」です<br>'; } echo '<br />'; // (2)等しい(※変数の「型」まで厳密比較したい場合はこちらを使用) // 変数1 === 変数2 と書く echo '(2)結果<br>'; $int2 = '2'; if($int2 === 2){ echo '変数の中身は数値型の2です'; }else{ echo '変数の中身は文字列型の2です<br>';//文字列なのでこちらが適用 } echo '<br />'; // (3)等しい // 変数1 != 変数2 と書く echo '(3)結果<br>'; $int3 = 3; $int4 = 4; if($int3 != $int4){ echo '$int3とint4は等しくありません(※数値型と文字列型のため))<br>'; } echo '<br />'; // (4)等しい(※変数の「型」まで厳密比較したい場合はこちらを使用) // 変数1 !== 変数2 と書く echo '(4)結果<br>'; $int3 = 999;//数値型 $int4 = '999';//文字列型 if($int3 !== $int4){ echo '$int3と$int4は等しくありません(※数値型と文字列型のため)<br>'; } echo '<br />'; |
実行結果
switch文の書き方
条件の分岐処理でif文と同様に「switch文」も利用頻度が高い書き方です。
switch文は変数に代入される予定の値と比較し、その値に応じて処理を分けて実行する時に利用します。
例えば、変数にサイコロを振った時の1から6までのばらばらの数が入っていて、その変数の値それぞれで処理が違う場合に利用するケースが該当します。
switch文の書き方
switch (変数){
case 値1:
変数の値が値1と等しい時の処理2;
break;
case 値2:
変数の値が値2と等しい時の処理2;
break;
case 値3: 変数の値が値3と等しい時の処理;
break;
default:
変数の値が値1、値2、値3のどれにも等しくない時の処理;
}
こちらもコードで確認してみましょう。
コード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
<?php // mt_rand(1,7)で1〜7までの数値をランダムで出す $int = mt_rand(1,7); // ランダムで出た数値を画面出力 echo $int.'<br>'; // switch文に条件を記載 switch($int){ case 1: echo 'サイコロの目が1です'; break; case 2: echo 'サイコロの目が2です'; break; case 3: echo 'サイコロの目が3です'; break; case 4: echo 'サイコロの目が4です'; break; case 5: echo 'サイコロの目が5です'; break; case 6: echo 'サイコロの目が6です'; break; default: echo '数値が1〜6のいずれでもない'; } |
実行結果
※ブラウザを「更新」して、表示が変わっている動画です。
switch文も使用するケースが多いのでこちらの書き方も練習してみてください。
for文とswitch文、どちらで書けば良いか悩むケースも出てくると思います。その際は、「判定する変数の中身が数値になっている場合」はswitch文で書くとコード量も少なくて済みます。また後々コードも修正しやすくなります。是非参考にしてみてください。
まとめ
いかがでしたか?今回は、phpでif文の書き方について説明しました。
プログラミングを学び始めた頃は、「if」を使ってうまく条件分岐を書けず、難しく感じることあると思います。ですが簡単な条件から書いていき、量をこなせば簡単に使えることができる日が来ると思うので、焦らずにゆっくりと理解を深めていってくださいね。
この記事が、皆様のphpの学習に役立つと幸いです。