【初心者向け】PHPのif~elseについて解説!基本構文や省略形の書き方まで説明します

こんにちは、大学院でIT系の研究を専攻している、ひらりんです。

PHPはサーバーサイドで動く言語で、世界中の多くのWebサイトがPHPによって記述されています。一括してコンパイルするのではなく、実行時に一行ずつコンパイルされることから、随時コードを確認できるのも、初心者が取り掛かりやすい理由のひとつです。

本記事では、PHPのif~elseについて説明します。プログラムのif文で、条件分岐をさせたい文が複数ある場合がありますよね。しかし、条件分岐の正しい書き方や概念を理解していないと、エラーや誤りが生じてしまうこともあります。

PHPのif~elseについての書き方を説明し、1行で書く方法の解説なども行うので、PHPの学習を始めた方やプログラムを書く予定の人はぜひ読んでみてください!

PHPのif構文

まず始めに、簡単にif文について確認しましょう。

プログラムにおいて、変数や配列に格納されている値で処理内容を変えたい場面がありますよね。テストの点数の結果によって優秀かそうでないか判断したり、年齢によって処遇を変えたりしたいときは、ifを用いた条件文によってプログラムを書くことができます。

基本構文

PHPのif文は、このように書きます。ifの直後の小括弧内()に、判断材料の条件文を書き、この条件が満たされた場合は、中括弧{}内の処理が実行されます。

条件文では、変数や配列の要素を定数で判別されることが多いです。「〇〇より大きいか」や「△△と同じか」などといった条件を用いて、プログラミングの分岐文は書かれます。

では、よく使われる比較演算子や論理演算子についても簡単に確認しましょう。

比較演算子

ここでは、よく使われる比較演算子を6つ紹介します。

等しい ==
等しくない !=
より多い >
より少ない <
以上 >=
以下 <=

PHPで主に使用される比較演算子は、このようになっています。なお、プログラムの世界でイコールが1つ(=)の場合は「代入」を表すため、左辺と右辺の比較ではないので、注意してください。

論理演算子

論理演算子について振り返ってみましょう!プログラミングにおいて使用頻度が高い論理演算子は、次の4つになります。

論理積(AND) &&
論理和(OR) ||
どちらか一方のみ成立(xor) xor
否定(not) !a

条件文などに用いる論理演算子は、これらのようなものが挙げられます。AとBという条件があるとして、”論理積”は「AもBも成り立っているとき」、”論理和”は「AかBが成り立っているとき」という条件文になります。

“どちらか一方”は「Aが成り立っていてBが成り立っていないとき」か「Aが成り立っていなくてBが成り立っているとき」という条件文が成り立ち、否定は「Aが成り立たないとき」といった条件を作りたいときに用いられます。

if文は、書き方次第で「Aが成り立っているときに~な処理を実施する」という分岐文が作れますが、論理演算子を用いることで、プログラムが冗長してしまうのを防ぐことができ、複雑な条件式を作れます。

PHPのif~else文

if文について、今回の主題であるif~elseについて説明します。

「ある1つの条件を満たしたら、〇〇な処理を実行する」という場合は、if文のみで書けます。しかし、「条件を満たしていたら〇〇な処理をして、満たしていなかったら△△な処理を実行する」と、処理内容を変えたい場面がありますよね。そこで登場するのがif~elseです。

基本構文

if~else文の書き方は次のようになります。

1つの条件に対しての評価を行い、処理内容を変えたい場合はこのように記述します。if直後の小括弧()内の条件に対して変数や配列の評価を行い、条件を満たしていたら直後の中括弧{}内の処理が実行されます。条件を満たしていなかったら、else以下の中括弧{}内の処理が行われるようになります。


では、2つ以上の条件を評価したい場合は、どのように書くのでしょうか。

2つ以上の条件を評価するときに使うのが、elseif構文です。どのように書くのか見てみましょう。

elseifはこのように使います。上から評価を行うため、ここでは条件1から調査されます。条件1を満たしていなかったら、3行目の処理に移り条件2の評価を行います。条件2も満たしていなかったら、5行目のelse以下の文に移るようになっています。

なお、elseifは複数個挿入することができ、2つ以上の条件分岐の作成を実現させます。しかし、処理は上から順に行われるため、elseifの順番には気を付けましょう!

それでは、実際のプログラムコード例について見てみましょう。

実践プログラム例

1つの条件分岐を用いた場合

年齢によって表示内容が変わるプログラムです。上から順に確認してみましょう。

2行目で変数$ageを定義しています。5行目からif文が始まり、「$age >= 18」という条件によって処理内容が変わります。今回は、$ageには15が格納されているので、条件は満たしませんね。そのため、else以下の処理に移り、’選挙権がありません’と表示されます。

2つ以上の条件分岐を用いた場合

性別と身長を評価し、表示内容が変わるプログラムです。上から順に見ていきましょう。

2,3行目で、変数$genderと$heightを定義しています。6行目からif文が始まります。if文の直後に、「$gender==’man’」と「$height>=168」の2つの条件を論理演算子&&で繋いだ条件があります。これにより、「性別が男で、かつ身長が168以上あったら」という条件になります。今回は、どちらの条件も満たしていないので、次に移ります。

8行目には、2つ目の条件文があります。こちらも同様で、「性別が女で、かつ身長が154.5以上あったら」という条件になります。今回は、$genderが’woman’で、$heightが160と定義されていたため、この条件は満たします。そのため、今回のプログラムでは、’女性で平均身長以上あります’と表示されます。

PHPのif文の省略形

ここまで、if文とif~else文などについて、基本的な書き方とプログラム例を説明してきました。しかし、PHPにはif文をもっと簡単に書く方法があります。最後に簡単に見てみましょう。

if文

基本構文

先ほどは、中括弧{}内に処理内容を書いていましたが、処理が1つしかない場合はこのように書けます。こうすることで、条件を満たしていたら実行するというif文を1行で書けます。簡単にコード例を見てみましょう。

実践プログラム例

変数$scoreを評価するプログラムです。5行目のように、1行でif文を記述することができます。ここでは、「$score>60」という条件を満たしているので、’合格’と表示されます。

if~else文

基本構文

続いて、if~else文の省略形は次のようになります。

if~else文のように、条件を満たすかどうかで処理内容が変わり、その結果を別の変数に格納することができます。実際のコード例を見てみましょう。

実践プログラム例

変数$scoreによって、表示内容が変わるプログラムです。5行目で、$scoreを評価しています。今回は、条件を満たすため、$resultには’A’が格納されて、7行目では’評価はAです’と表示されます。

まとめ

いかがでしたでしょうか?今回は、PHPのif~elseについて説明しました。

PHPのif文について、elseやelseifの理解だけでなく、1行で条件文が書けるようになると、プログラムが冗長化することを防くことができます。ぜひ理解を深めて、Webサービス作成やシステム構築に活かしてください。

BLOGコンテンツをパーソナライズします

あなたは現在「プログラミング学習者」ですか?