概要

if の条件式の中身を作るのが比較演算子だ。== (等しい)、!= (等しくない)、< > <= >= (大小比較) の 6 種類を覚えれば、ほとんどの条件式は書ける。比較演算子の結果は必ず truefalse のどちらか (真偽値) で、これを if がそのまま条件として読む。

ここで PHP 学習者が最初にぶつかる 超重要なハマりどころ が、== (緩い比較) と === (厳密比較) の違い。== は型を揃えてから比較するため、0 == "0"true になる (文字列を数値に変換して比較)。一方 ===型まで一致しないと真にならない ので、0 === "0"false。HTTP リクエストの値や DB の戻り値は文字列で来るため、ここで ===== の使い分けを誤ると、見えないバグの温床になる。基本方針は「迷ったら === を使う」。

PHP 7 までは 0 == "abc"true という強烈な挙動があった (文字列が数値 0 に変換されていた)。これが PHP 8 で false に修正されたのは PHP の歴史的にも大きな変更で、古い記事のサンプルコードを写経すると現代の PHP で結果が違って驚くことがある。この章では基本 6 演算子を体に入れつつ、===== の違いを「そういう罠がある」と頭に焼き付けるのが目的。

学習目標

ドリル

no 内容
01 2 つの整数が等しいか判定 (yes / no)
02 2 つの整数のどちらが大きいか判定 (a / b / equal)

演習: ドリル 01 — 2 つの整数が等しいか

問題

標準入力で 2 行 受け取り、それぞれを整数として読みます。 2 つが 等しい なら yes等しくない なら no と出力してください。

入力例:

5
5

期待される出力:

yes

ヒント

演習: ドリル 02 — どちらが大きいか

問題

標準入力で 2 行 受け取り、それぞれを整数として読みます (1 行目を a、2 行目を b とする)。 以下のルールで出力してください。

条件 出力
a の方が大きい a
b の方が大きい b
等しい equal

入力例:

3
7

期待される出力:

b

ヒント

この章を AI に聞く

  1. 「ch03 — 比較演算子」のつまずきやすいポイントを、初学者向けに3つ教えてください

    💬 ChatGPT 📘 Claude ✨ Gemini

  2. 「ch03 — 比較演算子」について、自分の手で試せる練習問題を3つ出してください (難易度を上げながら)

    💬 ChatGPT 📘 Claude ✨ Gemini

  3. 「ch03 — 比較演算子」を学んだ後、次に学ぶと良いトピックは何ですか?理由も教えてください

    💬 ChatGPT 📘 Claude ✨ Gemini

🎉 受講お疲れさまでした!

ch03 — 比較演算子」を読み終えました。
学んだことを誰かに教えると、もっと記憶に残ります。

X で共有 Hatena LINE