説明
mixed constant(string $name
)
name
で指定した定数の値を返します。
constant はある定数の値を取得する必要があるが、
その名前が不明な場合に有用です。つまり、定数名が変数に保存されているか、
関数から返される場合に有用です。
この関数は クラス定数 や
列挙型のcase に対しても動作します。
エラー / 例外
定数が定義されていない場合は Error
がスローされます。
PHP 8.0.0 より前のバージョンでは、
E_WARNING
レベルの警告が発生していました。
例
例1 定数に対して constant を使う例
<?php
define("MAXSIZE", 100);
echo MAXSIZE;
echo constant("MAXSIZE"); // same thing as the previous line
interface bar {
const test = 'foobar!';
}
class foo {
const test = 'foobar!';
}
$const = 'test';
var_dump(constant('bar::'. $const)); // string(7) "foobar!"
var_dump(constant('foo::'. $const)); // string(7) "foobar!"
?>
例2 列挙型の case に constant を使う例(PHP 8.1.0 以降)
<?php
enum Suit
{
case Hearts;
case Diamonds;
case Clubs;
case Spades;
}
$case = 'Hearts';
var_dump(constant('Suit::'. $case)); // enum(Suit::Hearts)
?>
参考
- define
- defined
- get_defined_constants
- 定数の節