【PHP】親クラスから継承したstaticメソッドで子クラスの定数を参照する方法
2024/01/29
親クラスから継承したstaticメソッドで、子クラスの定数を参照したい場合、`static::`が使えます。`self::`による参照では、メソッドが定義されたクラスに解決されます。以下は`self::`と`static::`を比較したコードです。詳しくは[公式ドキュメント](https://www.php.net/manual/ja/language.oop5.late-static-bindings.php)を参照してください。
```php
class A
{
protected const CONFIG = 'A';
public static function selfConfig(): string
{
return self::CONFIG;
}
public static function staticConfig(): string
{
return static::CONFIG;
}
}
class B extends A
{
protected const CONFIG = 'B';
}
var_dump(A::selfConfig()); // string(1) "A"
var_dump(A::staticConfig()); // string(1) "A"
var_dump(B::selfConfig()); // string(1) "A"
var_dump(B::staticConfig()); // string(1) "B"
```