カテゴリー
PHP

論理演算子を知ろう

この章では論理演算子について説明します。
「if文について理解しよう。if文の基本構文1」の箇所で比較演算子について説明しましたが、if文でもっと複雑な条件定義をしたい場合には論理演算子を使用します。111
では例をみてみましょう。1 1論理演算子andを挟んだ両辺に11 が配置されていますが、両辺がTRUEの場合のみ条件式がTRUEになります。
つまり
1もしくは1の片方がFALSEの場合には条件式はTRUEになりません。
これが論理演算子 andの役割です。
結果は「$b==9」がFALSEなので、1が出力されます。
次の例をみてみましょう。11 andは$aと$bの両辺がTRUEの場合に条件式がTRUEになりましたが、orの場合は$aと$bのどちらかがTRUEの場合に条件式がTRUEになりますので、この例の場合は1がFALSEですが、条件式はTRUEになります。
結果は「TRUEです」になります。
次の例をみてみましょう。
11上の例は1が TRUE,1の部分がFALSEなので、全体の条件式はTRUEになりますので、結果は1になります。1 上の例は11が共にTRUEなので、全体の条件式はFALSEになりますので、結果は1になります。
次の例をみてみましょう。11 上の例は先ほどのandの箇所で使用した例題に1を付けたのですが、「!」を付けることで条件式がTRUEではない場合にif文が実行されます。
結果は1になります。
次の例をみてみましょう。
1ただ単に変数に1が付いているだけですが、これでも条件式としては成り立ちます。
ではこの例の何がTRUEもしくはFALSEになるのかの判断基準を説明します。
FALSEとは
〇整数の0
〇浮動小数点の0.0
〇文字列の1〇何も入ってない文字列、
つまり1のように変数に何も入ってないカラ文字
〇要素が何も入ってない配列
〇NULL
NULLとは何も変数に入ってない状態を指します。
〇FALSEという文字
ここまでがFALSEです。
それ以外はすべてTRUEです。
例えば変数に中に1のようにFALSEの条件以外の値が入っていればTRUEです。
以下の例は$aに1が入っているので以下の条件式はTRUEです。1 先ほどの以下の例を書き換えてみましょう。1 上の例を書き換えると以下のようになります。1 1は同じ意味です。
条件式である1は$aが FALSEであるならばif文が実行されます。
このように条件式で真偽を調べるときに明示的にFALSE、TRUEを使うことが出来ることを覚えておいてください。
結果は「0はFALSE」なので1が実行されます。
次は論理演算子の優先順位について説明します。
論理演算子には順位がありまして、1の方が1よりも優先度が高い、つまり、先に実行されるという事です。
また、1が並んだ場合には、最初に評価されるのは1です。
例を見てみましょう。1 論理演算子が2つありますが、最初に評価されるのはandなので、あえて括弧で囲みますと以下のようになります。
orは両辺のどちらかがTRUEであれば条件式がTRUEになりますので、結果は1になります。1 以下のようにorを中心に評価されるのではないことに注意してください。1 では次の例を見てみましょう。1この例では1より1の方が優先順位が高いので、あえて括弧で囲みますと以下のようになります。11の結びつきが優先されますので以下のような括弧の囲みにはなりません。1