第09回: 論理演算子 — 複雑な条件を読みやすく整理する

章: 第1章: 文法の土台

「会員かつクーポンを持っている場合」——こういう条件、どう書きますか?

業務ルールには「〇〇かつ△△」「〇〇または△△」のような複合条件が頻繁に登場します。論理演算子(AND・OR・NOT)を使うと、こうした条件をコードに正確に、かつ読みやすく反映できます。

まずコードを動かしてみる


<?php
$isMember = true;
$hasCoupon = false;
if ($isMember && !$hasCoupon) { echo '会員割引のみ適用'; }

&&(AND)・||(OR)・!(NOT)が論理演算子の基本3つです。

論理演算子の種類と使い分け

演算子 意味
&& または and 両方true $a && $b
`\ \ または or` どちらかtrue `$a \ \ $b`
! または not 否定 !$a

&&and の違いに注意


<?php
// && は優先度が高い
$result = true && false;  // false(意図通り)

// and は優先度が低い(= より低い)
$result = true and false; // true($result = true が先に評価される)

チェックポイント: &&and は動作が異なります。実務では &&|| を使うのが安全です。andor は優先度の罠があるため、混乱を避けるために使わないようにしましょう。

複雑な条件の書き方

悪い例(条件が入れ子になりすぎて読みにくい)


<?php
if ($age >= 18) {
    if ($isMember) {
        if (!$isBanned) {
            echo '利用可能';
        }
    }
}

良い例(論理演算子でフラットに書く)


<?php
if ($age >= 18 && $isMember && !$isBanned) {
    echo '利用可能';
}

まとめ & 次のステップ

  • && は「かつ」、|| は「または」、! は「否定」
  • 実務では &&|| を使い、andor は避ける(優先度の違いに注意)
  • 複数の条件を組み合わせるときはカッコ () で優先度を明示する
  • ネストしたif文は論理演算子でフラットにできることが多い
  • 「短絡評価」: && は左が false なら右を評価しない(パフォーマンスに活用できる)

次回は if文を学びます。条件に応じて処理を変えるプログラミングの基本を実践的に押さえましょう。

Related Articles