こんにちは。先日ヘッドホンを買い換えて少し浮かれているひろです。
phpを使ってweb開発をする際に必ず出てくるif文を使った条件分岐ですが、if文は難しいですよね。
if文ってどうやって扱うんだろう?
ちょっと複雑なif文を使いたいんだけど、どうやって使えばいいのかわからない……。
こんな悩みは初心者であれば誰もが通った道だと思います。
そこで今回は、このif文の使い方についてわかりやすく説明します!是非参考にしてみてくださいね。
目次
if文は条件式と処理の2つのパーツで構成される
以下のコードを見てください。
1 2 3 4 5 6 7 |
$number = 10; //()の内部が条件式 if($number === 10){ //処理 echo 'これは10です'; } |
これが基本的なif文の書き方です。詳しく解説していきます。
条件式はtrueかfalseを判定する
先程の式の、
1 |
($number === 10) |
が条件式です。
この条件式というのは、「与えられた条件に対し、その通りかどうかを判別する」文で、trueかfalseで判定できる式である必要があります。
この例の条件式を日本語に訳すと、「$numberは10ですか?」となり、実際に$numberは10なので、この条件式はtrueとなります。
処理は条件式の結果によって行うかどうかが決定される
先程の式の、
1 |
echo 'これは10です'; |
という部分が処理の部分になります。
この処理は条件式がtrueとなった場合にのみ処理されます。今回の場合は条件式がtrueなのでこの処理が実行されます。もしも条件式がfalseの場合はこの処理は実行されません。
条件式の条件は複数設定できる
条件式の中身は、実は「〇〇かつ△△のとき」、つまり両方の条件を満たしたときにtrueとなる場合だったり、「〇〇または△△のとき」、つまりどちらか片方の条件を満たしたときにtrueとなる場合など、条件式は複数設定することが可能です。
1 2 3 4 5 6 7 8 9 10 11 |
$number = 20 //$numberが10より大きく、かつ30でないとき if($number >= 10 && $number !== 30){ echo 'numberは10より大きいですが、30ではないです'; } //$numberが10または20のとき if($number === 10 || $number === 20){ echo 'numberは10か20です'; } |
ここで使われている「&&」は「かつ」、「||」は「または」という意味で使われています。
実際の例 倍数判定
では、実際にphpファイルを作成し動かしてみましょう。
以下の例では、$numberが5の倍数かどうかの判定をしています。判断する方法は、$numberを5で割ってみてあまりが0であればtrue、そうでなければfalseとなります。
1 2 3 4 5 6 7 |
<?php $number = 10; if(($number % 5) === 0){ echo 'numberは5の倍数です'; } |
今回の場合、10は5の倍数なので条件式はtrueとなり、処理である「’numberは5の倍数です’を出力します」という処理を実行します。
if文はelseを使うことで「そうでなければ」という条件を追加できる
条件に合わない場合の処理の追加はelseを使う
百聞は一見にしかずということで、早速以下の例を見てみます。
1 2 3 4 5 6 7 8 |
$number = 15; //$numberが10の場合 if($number === 10){ echo 'numberは10です'; }else{ echo 'numberは10ではありません'; } |
条件式で$numberが10かどうかを判定しています。この場合は10ではないので、条件式はfalseになります。なので、先程の場合であれば処理が行われないですが、今回はelse以下に処理を追加しています。elseというのは「そうでなければ次の処理をする」という意味です。
今回であれば、結果的に行われる処理は2つ目の処理である「’numberは10ではありません’を出力します」という処理を実行します。
実際の例 2つの文字式の判別
こちらもぜひ実際に動かしてみてください。
今回は、2つの変数が同じかどうかの判定を行い、同じであればtrue、違うものであればfalseとなります。
1 2 3 4 5 6 7 8 9 10 |
<?php $number1 = 100; $number2 = 200; if($number1 === $number2){ echo 'number1とnumber2は同じです'; }else{ echo 'number1とnumber2は違います'; } |
今回の場合、$number1と$number2は違いますので、「’number1とnumber2は違います’を出力します」という処理が行われます。
elseifを追加することで「そうでなくて〜〜の場合」という条件を追加できる
条件自体の追加はelseifを使う
例を見ていきます。
1 2 3 4 5 6 7 8 9 |
$number = 70; if($number > 100){ echo 'numberは100より大きいです'; }elseif($number > 50){ echo 'numberは100以下ですが、50より大きいです'; }else{ echo 'numberは50より小さいです'; } |
今回の例のように、1つ目の条件式がfalseになった場合に再度新しい条件式で判定する、という場合にはelseifを使います。
今回の場合、まず1つ目の条件式は100より大きいかの判定ですが、$numberは70なのでfalseとなります。そうすると、その次の条件式に移り、$numberが50より大きいかの判定となり、この判定はtrueとなり、「’numberは100より小さいですが、50より大きいです’を出力します」という処理を行います。
実際の例 倍数判定
今回は、先程の倍数判定よりも難しい条件でif文を使ってみます。
条件は、以下のとおりです。
$numberは183とし、$numberに対して以下の条件でif文を用いて条件分岐をさせてください。
- 3の倍数のときは「にゃー」と出力する
- 7の倍数のときには「わん」と出力する
- 3の倍数かつ7の倍数のときには「にゃーわん」と出力する
- 3の倍数でも7の倍数でもないときは「ぶー」と出力する
今回は複雑な条件分岐になりました。みなさんはどのようにif文を作成しますか?
ヒントとしては、「かつ」を使うと楽に作れるかもしれません。
以下、実際の実装例です。みなさんもぜひ自分で手を動かしてみてくださいね。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?php $number = 183; if(($number % 3) === 0 && ($number % 7) === 0){ echo 'にゃーわん'; }elseif(($number % 3) === 0){ echo 'にゃー'; }elseif(($number % 7) === 0){ echo 'わん'; }else{ echo 'ぶー'; } //今回の判定結果:にゃーが出力される |
今回の実装例はあくまで一例ですので、もしかしたら皆さんの考えた実装とは違うかもしれませんが、実際に動かしてみて問題がなければ、それも正解です。
まとめ
いかがでしたか?今回は、
について見て紹介しました。phpを扱う上で必ず使うことになるif文ですが、最初はとても難しく感じますよね。もしもif文で詰まったときには、この記事を是非参考にしてみてください。