こんにちは、大学院でIT系の研究を専攻している、ひらりんです。
PHPはサーバーサイドで動く言語で、世界中の多くのWebサイトがPHPによって記述されています。一括してコンパイルするのではなく、実行時に一行ずつコンパイルされることから、随時コードを確認できるのも、初心者が取り掛かりやすい理由のひとつです。
本記事では、PHPのif文で”||”を使う方法を説明します。PHPに限らず、プログラムにおいて条件文を書きたいときはif文を使います。しかし、if文の書き方はプログラムによって違い、複数条件で分岐文を作りたいときなどは、混乱しちゃいますよね。
PHPのif文の論理演算子”||”について基本的な扱い方を説明し、実際にプログラムに組み込むことを想定した解説も行うので、PHPの学習を始めた方やプログラムを書く予定の人はぜひ読んでみてください!
目次
論理演算子とは?
まずは、論理演算子について簡単にまとめましょう!プログラミングにおいて使用頻度が高い論理演算子は、次の4つになります。
論理積(AND) | && |
論理和(OR) | || |
どちらか一方のみ成立(xor) | xor |
否定(not) | !a |
条件文などに用いる論理演算子は、これらのようなものが挙げられます。AとBという条件があるとして、”論理積”は「AもBも成り立っているとき」、”論理和”は「AかBが成り立っているとき」という条件文になります。
“どちらか一方”は「Aが成り立っていてBが成り立っていないとき」か「Aが成り立っていなくてBが成り立っているとき」という条件文が成り立ち、否定は「Aが成り立たないとき」といった条件を作りたいときに用いられます。
if文は、書き方次第で「Aが成り立っているときに~な処理を実施する」という分岐文が作れますが、論理演算子を用いることで、プログラムが冗長してしまうのを防ぐことができ、複雑な条件式を作れます。
論理演算子の”||”
ここでは、本記事のテーマの論理演算子”||”について解説します。
「|」の名称は、パイプラインと呼ばれています。先述した通り、「or」を表す論理演算子であり”A || B”と書くことで「Aの条件かBの条件どちらかが満たしていればよい」という条件文になります。ベン図で説明すると、以下の色付きの範囲を表します。
このように、条件Aと条件Bを論理和で同時に条件文をPHPで書く際には、次のように記述します。
1 |
(条件A || 条件B) |
小括弧()内に、条件AとBを書き、その間に“||”を書きます。こうすることで、論理和の条件文を作れます。また、2つ以上の条件文を作りたい場合は、同様の書き方で条件を増やせます。
PHPのif構文
論理演算子”||”を用いた条件文に入る前に、簡単にif文について確認しておきましょう。
プログラムにおいて、変数や配列に格納されている値で処理内容を変えたい場面がありますよね。テストの点数の結果によって優秀かそうでないか判断したり、年齢によって処遇を変えたりしたいときは、ifを用いた条件文によってプログラムを書くことができます。
では、PHPにおけるif文の書き方を見てみましょう!
基本構文
1 2 3 |
if (条件) { // 条件を満たした場合に個々の処理が行われる } |
PHPのif文は、このように書きます。ifの直後の小括弧内()に、判断材料の条件文を書き、この条件が満たされた場合は、中括弧{}内の処理が実行されます。
条件文では、変数や配列の要素を定数で判別されることが多いです。「〇〇より大きいか」や「△△と同じか」などといった条件を用いて、プログラミングの分岐文は書かれます。では、よく使われる比較演算子についても簡単に確認しましょう。
使用頻度の高い比較演算子
ここでは、よく使われる比較演算子を6つ紹介します。
等しい | == |
等しくない | != |
より多い | > |
より少ない | < |
以上 | >= |
以下 | <= |
PHPで主に使用される比較演算子は、このようになっています。なお、プログラムの世界でイコールが1つ(=)の場合は「代入」を表すため、左辺と右辺の比較ではないので、注意してください。
それでは、これらの比較演算子と論理演算子の”||”を用いた条件分岐文を、実際のコードをもとに見てみましょう。
“||”を用いた条件2つの分岐文例
1 2 3 4 5 6 7 8 |
// 変数$age、$cityを定義 $age = 15; $city = 'Yokohama'; // 条件が2つの分岐文 if ($age <= 12 || $city == 'Yokohama') { echo '12歳以下か横浜住みです'; } |
2つの条件文を、論理演算子”||”で比較した分岐文です。上から順に説明します。
2,3行目で、変数$ageと文字列が定義された$cityが定義されています。6~8行目でifを用いた条件文が記述されています。ifの直後の小括弧()内を見てください。
論理演算子”||”が用いられており、左側の条件「$age <= 12」と右側の条件「$city == ‘Yokohama’」を論理和でつないでいます。つまり、「$ageが12以下かどうか」と「$cityが’Yokohama’かどうか」という条件のどちらかを満たしている場合、そのあとの中括弧{}内の処理が実行されるようになっています。
今回は、$ageが15と定義されているため、左側の条件「$age <= 12」は満たしていませんが、「$city == ‘Yokohama’」という条件は満たしているため、if文の条件がtrue判定されて、7行目の処理が実行され、’12歳以下か横浜住みです’と表示されます。
“||”を用いた条件3つの分岐文例
1 2 3 4 5 6 7 8 9 10 11 12 13 |
// 変数$age、$time、$genderを定義 $age = 35; // 年齢を定義 $time = 18; // 移動時間(分)を定義 $gender = 'man'; // 性別を定義 // 3つの条件を持つ分岐文をif~elseにて定義 if ($age >= 40 || $time <= 15 || $gender == 'woman') { echo 'Aグループです'; } elseif ($age <= 20 || $time <= 20 || $gender == 'woman') { echo 'Bグループです'; } else { echo 'Cグループです'; } |
3つの条件を、論理演算子”||”で比較した分岐文です。ここでは、if~else文を用いて、より複雑な条件分岐となっています。ちなみに、if~else文は、上の条件から順に調査されて、条件を満たした場合はその直後の中括弧{}内の処理が実行されて、if文を抜け出します。9行目のelseifを用いることで、条件によって処理をより多く分けることができます。
PHPのif文については、以下の記事で紹介されているので、理解が曖昧な人は参考にしてください。
参考 【PHP入門】PHPでif文を使う方法ウェブカツ ブログでは、プログラムを上から順に確認してみましょう。2~4行目で変数がそれぞれ定義されています。7行目からif文が始まり、条件分岐が行われています。最初の条件は、論理演算子”||”を用いて3つの条件をつなぎ、「40歳以上か」「15分以内の距離に住んでいるか」「女性か」の3つの条件のどれかが成り立てば、その直後の処理が実行されます。
続いて、9行目にも”||”を用いて条件が指定されています。これは、先ほどの条件を満たさないうえ、「20歳以下か」「20分以内の距離に住んでいるか」「女性か」の3つの条件のどれかが成り立つかどうかという条件文になっています。
今回は、$timeが18と定義されているため、9行目の条件文を満たし、10行目に書かれている処理が実行されて、’Bグループです’と表示されます。
少し複雑な条件文でしたが、このように論理演算子”||”を用いることで、複数条件の論理和が作れます!
まとめ
いかがでしたでしょうか?今回は、PHPのif文の論理演算子”||”について説明しました。
PHPのif文について、”||”に限らず他の論理演算子について理解しておくと、プログラムが冗長化することを防くことができるため、プログラムには欠かせないメソッドです。ぜひ理解を深めて、Webサービス作成やシステム構築に活かしてください。