概要

クラス定数は 「クラスに紐付いた変更できない値」 で、class Config { const VERSION = "1.0"; } のように const キーワードで宣言する。インスタンスを作らずに Config::VERSION の形で参照でき、static プロパティと違って 代入で書き換えることが一切できない。バージョン番号・上限値・状態名 (STATUS_ACTIVE 等) のような「コードを書いた時点で確定していて、実行中に変わらない値」を集約しておく場所として使う。

書き方は const NAME = 値; で、クラスの { } の中に置く。値には数値・文字列・配列・他の定数式が書ける。外から参照するときは ClassName::NAME、クラス内からは self::NAME の形で、static プロパティと違って $ は付かない。マジックナンバー (if ($status === 2)) をコードに散らばらせず、if ($status === Order::STATUS_PAID) と書けるようになるのが、読み手に対するいちばん大きな効果になる。

補足として PHP 8.1 以降には enum (列挙型) が導入されていて、「決まった選択肢のうちのどれか」を表現するならクラス定数より enum のほうが型として強く守れる。enum Status { case Active; case Paid; } のように書ける。古いコードベースではクラス定数で十分なケースも多いが、新規設計では「集約された定数群は enum 化を検討する」流れになっていることだけ意識しておく。

学習目標

ドリル

このチャプターはスライドのみ。次の章へ。

採点ドリルは無し。スライドで概念を理解したら ch08 (final) に進む。

この章を AI に聞く

  1. 「ch07 — クラス定数 (const)」のつまずきやすいポイントを、初学者向けに3つ教えてください

    💬 ChatGPT 📘 Claude ✨ Gemini

  2. 「ch07 — クラス定数 (const)」について、自分の手で試せる練習問題を3つ出してください (難易度を上げながら)

    💬 ChatGPT 📘 Claude ✨ Gemini

  3. 「ch07 — クラス定数 (const)」を学んだ後、次に学ぶと良いトピックは何ですか?理由も教えてください

    💬 ChatGPT 📘 Claude ✨ Gemini

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

ch07 — クラス定数 (const)」を読み終えました。
学んだことを誰かに教えると、もっと記憶に残ります。

X で共有 Hatena LINE