演算子についての最後の記事です。論理演算子は比較演算子と同時に使われることも多い演算子です。どちらもTRUEなのか、片方だけがTRUEなのかなどを判別するために利用されます。詳細は以下をお読みください。

論理演算子とは

3年以上前に更新されました。情報が古い可能性があります。
更新日 : 2019年04月15日

演算子についての最後の記事です。

論理演算子は比較演算子と同時に使われることも多い演算子です。どちらもTRUEなのか、片方だけがTRUEなのかなどを判別するために利用されます。

論理演算子

比較演算子では2つの値の比較を行いました。比較の結果をTRUEまたはFALSEで表すものでした。

論理演算子では左右の式がどちらもTRUEなのか、どちらかがTRUEなのか、あるいはFALSEなのかを調べる際に利用します。

下記の表をご覧ください。

演算式演算式の意味
A && BA式とB式が両方ともTRUEのときTRUE(真)、それ以外はFALSE(偽)
A || BA式とB式のどちらかでもTRUEのときTRUE、それ以外はFALSE
!AA式がTRUEではないときTRUE、それ以外はFALSE

とりあえずこちらの2種類だけ知っておけばなんとかなります。無駄にいろいろなことは覚える必要はありません。

ではPHPのコードを使って見てみましょう。

<?php
$x = 10;
$y = 3;

// どちらも正しいのでTRUE(1)
echo ($x == 10) && ($y == 3);
echo "<br>";

// 左辺が正しいのでTRUE
// またはという条件なので右辺の式はTRUEでもFALSEでも関係なし
echo ($x == 10) || ($y == 8);
echo "<br>";

// 結果はTRUE
echo !FALSE;
echo "<br>";

// 結果はTRUE
// 式が順番に比較され、まずは($x == 10) && ($y == 3)がTRUEとわかる
// ($x == 10) && ($y == 3)はTRUEなので
// TRUE && ($x * $y == 30)という意味で次を解釈することができ、これもTRUEとなるので全体でTRUE
echo ($x == 10) && ($y == 3) && ($x * $y == 30);
echo "<br>";

// 結果はTRUE
// このように論理式をカッコで囲うことも可能で
// まずは(($x == 3) || ($y == 10))この式が判断されます。これは$xと$yがどちらも反対なので結果がFALSEになりますが
// !(ビックリマーク)で反転するため!(($x == 3) || ($y == 10))これはTRUE
// 1番右の式とTRUEを論理演算子で比較すると全体でTRUEとなる
echo !(($x == 3) || ($y == 10)) && ($x * $y == 30);
?>

結果はすべてTRUEとなります。

コード例のように、カッコで囲うことによって複数条件を組み込んだり、いくつかの論理演算子を使用して、全体でどのようになるかを判定する事ができます。

まとめ

この論理演算子までで、すべての演算子について学びました。プログラミング言語にこれらの演算子は必ず実装されています。

比較演算子や論理演算子に関しては今回の記事内のコード例ではどのように利用するのかわからないと思いますが、if文という条件式など以降の記事で多用するようになりますので、今回は演算子の使い方を理解していただければと思います。