Lesson 9 / Chapter 7
「変えてはいけない値」をクラスに持たせたい
<?php
class Tax {
public static float $rate = 0.10;
}
Tax::$rate = 0.20; // ❌ うっかり書き換わってしまう
static プロパティは便利だが、誰でも書き換えられる
- 税率や円周率など「変わってはいけない値」には不向き
const で書き換え不能な値を定義
<?php
class Tax {
const RATE = 0.10;
}
const 名前 = 値; の形式
- 定数名は 大文字 が慣例 (
RATE, MAX_AGE など)
$ は付けない (変数ではないので)
参照方法
<?php
echo Tax::RATE . "\n"; // 0.1
// Tax::RATE = 0.20; // ❌ Fatal error: 定数は変更できない
- 外からは
ClassName::NAME で参照
- クラス内からは
self::NAME で参照
- 書き換えようとすると即エラー
クラス内での使用例
<?php
class Tax {
const RATE = 0.10;
public static function withTax(int $price): float {
return $price * (1 + self::RATE);
}
}
echo Tax::withTax(1000) . "\n"; // 1100
- メソッド内では
self::RATE で呼ぶ
- 値が 1 箇所で管理され、改修も楽
static プロパティとの違い
|
static $name |
const NAME |
| 値の変更 |
できる |
できない |
| 命名 |
$camelCase |
UPPER_CASE |
| 用途 |
共有される状態 |
不変の設定値 |
「変えていい値 = static、変えてはいけない値 = const」と覚える。
このチャプターでできるようになること
✅ const でクラス定数を定義できる
✅ ClassName::NAME / self::NAME で参照できる
✅ 書き換えるとエラーになることを知っている
✅ static との使い分けを言える
関連: 同トピック内の他チャプター (このチャプターは採点ドリル無し)