プログラミング言語を学ぶ上で演算子は必要不可欠な知識のうちの一つです。
その中でも、今回はPHPの条件式で使われるorについて詳しく解説していきます。
この記事では、orについて以下の内容で解説していきます。
【基礎】そもそもorとは何か?
【基礎】orの書き方
【基礎】orの使い方
【発展】andとの違い
【発展】他の演算子について
ここではorの使い方についてわかりやすく解説していますので、ぜひ参考にしてください。
orとは
orとはPHPで複数の条件式を比較するときに使われます。
例えば、以下のような条件式を表してみます。
「”テストの点数が65点未満” かつ “出席回数が10回未満”」 => 「”テストの点数が65点未満” and “出席回数が10回未満”」
「”18歳未満” または “65歳以上”」 => 「”18歳未満” or “65歳以上”」
上記の例でわかった方もいると思いますが、
orは論理演算の「または」を表す記号なのです。
orの書き方
orは条件式が複数ある場合に使われます。
orは以下のように、条件式1(左辺)と条件式2(右辺)の間に「or」を書きます。
if (条件式1 or 条件式2) { 実行処理 }
条件式1か条件式2のどちらかでもTRUEであれば、処理が実行されます。
反対に、条件式1と条件式2がどちらもFALSEの時のみ、処理は実行されません。
条件式1(左辺) | 条件式2(右辺) | 実行処理 |
---|---|---|
TRUE | TRUE | 実行される |
FALSE | TRUE | 実行される |
TRUE | FALSE | 実行される |
FALSE | FALSE | 実行されない |
orの使い方
orの使い方を簡単な例題を用いて紹介してきます。
例題1:映画のチケット料金の算出
映画のチケット料金は、一般料金とは別に学生やシニア専用の特別料金があります。
この例題では年齢からチケット料金をPHPのorを使って算出してきましょう。
以下のプログラムは、
年齢が「18歳以下または65歳以上」の時に「特別料金です。」と出力し、
年齢が上記以外の時は「一般料金です。」と出力するプログラムです。
// 年齢 $age = 70; // 年齢からチケット料金を算出 if ($age <= 18 or $age >= 65) { echo "特別料金です。"; } else { echo "一般料金です。"; }
上記のプログラムで年齢($age)を70に設定した時の実行結果は
特別料金です。
となります。
また、年齢($age)を70から25に変更して再実行した時の実行結果は
一般料金です。
となります。
例題2:補習の有無
学校の補習の有無を、テストの点数と出席回数で判断するプログラムです。
テストの点数が65点未満、または出席回数が10回未満の場合は補習があります。
補習の有無を判断するためのプログラムが以下になります。
// テストの点数 $test = 70; // 出席回数 $attendance = 9; // テストの点数と出席回数から補習の有無を判断 if ($test < 65 or $attendance < 10) { echo "補習があります。"; } else { echo "補習はありません。"; }
上記のプログラムを実行すると、
補習があります。
と出力されます。
テストの点数は70点なので「$test < 65」(テストの点数が65点未満)に当てはまりませんが、出席回数が9回であるため「$attendance < 10」(出席回数が10回未満)に当てはまり、「補習があります」と出力されます。
もし出席回数を10回以上(例えば「$attendance = 13;」)に設定して再実行すると、
補習はありません。
と、結果が変わることがわかるでしょう。
orとandの違いとは
andの役割と書き方
andは、条件式が複数ある場合に、そのどちらの条件式もTRUEである場合に、andはTRUEを返します。
andは以下のように、条件式1(左辺)と条件式2(右辺)の間に「and」を書きます。
if (条件式1 and 条件式2) { 実行処理 }
orとandの違い
orとandは、再頻出の演算子なので、今回を機に覚えてしまうのが良いでしょう。
以下にそれぞれの挙動をまとめておきます。
or
- 左辺と右辺の条件式のどちらかがTRUEの場合に、TRUEを返します。
- それ以外はFALSEを返します。
and
- 左辺と右辺の条件式がどちらもTRUEの場合に、TRUEを返します。
- それ以外はFALSEを返します。
条件式1(左辺) | 条件式2(右辺) | 論理演算子andの場合 | 論理演算子orの場合 |
---|---|---|---|
TRUE | TRUE | TRUE | TRUE |
FALSE | TRUE | FALSE | TRUE |
TRUE | FALSE | FALSE | TRUE |
FALSE | FALSE | FALSE | FALSE |
orとandを例題から理解する
orとandを例題2:補習の有無を参照して理解していきましょう。
orを利用した例題2のサンプルプログラムは以下です。
// テストの点数 $test = 70; // 出席回数 $attendance = 9; // テストの点数と出席回数から補習の有無を判断 if ($test < 65 or $attendance < 10) { echo "補習があります。"; } else { echo "補習はありません。"; }
上記の場合の実行結果は、出席回数が10回未満であるため、
補習があります。
と出力されます。
ここで、orからandに変更します。
// 変更前 iif ($test < 65 or $attendance < 10) { // 変更後 iif ($test < 65 and $attendance < 10) {
変更後、再度プログラムを実行してみると、
補習はありません。
と、出力結果が変わっていることがわかると思います。
変更前の補習ありの条件は、
・テストの点数が65点未満、または、出席回数が10回未満
であったのに対し、andに変更後は
・テストの点数が65点未満、かつ、出席回数が10回未満
に変わったため、出席回数が9回(10回未満)でもテストの点数が70点(65点以上)なら補習はなしという実行結果になります。
このように、orとandは明確な違いがあることを理解しましょう。
PHPの論理演算子一覧
PHPの論理演算子には他にもxorや!などがあるため、この機会に他の論理演算子も合わせて覚えておくと後々役にたつかもしれません
論理演算子 | 式 | $a = TRUE $b = TRUE | $a = TRUE $b = FALSE | $a = FALSE $b = TRUE | $a = FALSE $b = FALSE |
---|---|---|---|---|---|
and(論理積) | $a and $b | TRUE | FALSE | FALSE | FALSE |
or(論理和) | $a or $b | TRUE | TRUE | TRUE | FALSE |
xor(排他的論理和) | $a xor $b | FALSE | TRUE | TRUE | FALSE |
!(否定) | !$a | FALSE | TRUE | TRUE | FALSE |
&&(論理積) | $a && $b | TRUE | FALSE | FALSE | FALSE |
||(論理和) | $a || $b | TRUE | TRUE | TRUE | FALSE |
まとめ
ここでは、orの基本的な書き方や使い方を、簡単な例題と共に紹介しました。
orは、2つの条件式のどちらかでも真を示せば、真を返す演算子です。
演算子は、PHPの学習、もとよりプログラミング言語を学習する上で必要不可欠の知識なので、この記事を参考にぜひマスターしてください!