本文へスキップ
BecomeCoder

PHPコース · 第2章 条件分岐と繰り返し · レッスン6

比較と論理演算子 ― ==と=== の違い

ブラウザで完結

導入

条件をもっと細かく指定したいことがあります。「18歳以上 かつ 会員である」のように、複数の条件を組み合わせるのが論理演算子です。

説明

論理演算子は &&(かつ/AND)、||(または/OR)、!(〜でない/NOT)です。

<?php
$age = 20;
$isMember = true;

if ($age >= 18 && $isMember) {
    echo "入場できます\n";
} else {
    echo "入場できません\n";
}

true(真)と false(偽)は「はい/いいえ」を表す値で、**真偽値(bool)**と呼びます。条件式の結果はこの真偽値です。

もう1つ大事なのが、等しさの比べ方です。PHP には ===== の2種類があります。

<?php
var_dump(1 == "1");    // true : 値だけを比べる(型を自動でそろえる)
var_dump(1 === "1");   // false: 値と型の両方を比べる(数値 1 と文字列 "1" は別物)

var_dump() は、値と型(int や string など)をデバッグ用に詳しく表示する関数です。== は型を自動変換してから比べるので思わぬ結果になりがちです。迷ったら ===(厳密比較)を使うのが安全、と覚えておきましょう。

やってみよう

$age$isMember を書き換えて、入場の可否が変わることを確かめましょう。var_dump の行の値も変えて、===== の違いを観察してみてください。

演習

変数 $hour(0〜23の時刻)を作り、6 以上 18 未満なら "昼です"、それ以外は "夜です" と表示してください。

ヒント1を見る

「6以上 かつ 18未満」は $hour >= 6 && $hour < 18 と書きます。

実際に動かしてみよう

下のエディタにPHPを書いて「実行」を押すと、ブラウザ内で動く本物のPHP(php-wasm)で出力が表示されます。コードは必ず <?php で書き始めます。本文の例をそのまま試したり、書き換えたりしてみましょう(初回だけPHPの読み込みに少し時間がかかります)。

PHP — ブラウザ内で実行

ブラウザ内で動く本物のPHP(php-wasm / PHP 8.4)を読み込みます(初回のみ読み込みに少し時間がかかります)。
スクロールして表示された時点でも自動で読み込まれます。