constant

定数の値を返す

説明

mixed constant(string $name)

name で指定した定数の値を返します。

constant はある定数の値を取得する必要があるが、 その名前が不明な場合に有用です。つまり、定数名が変数に保存されているか、 関数から返される場合に有用です。

この関数は クラス定数列挙型のcase に対しても動作します。

パラメータ

name

定数名。

戻り値

定数の値を返します。

エラー / 例外

定数が定義されていない場合は Error がスローされます。 PHP 8.0.0 より前のバージョンでは、 E_WARNING レベルの警告が発生していました。

変更履歴

バージョン 説明
8.0.0 定数が定義されていない場合は、 constantError をスローするようになりました。 これより前のバージョンでは、 E_WARNING レベルの警告が発生し、null を返していました。

例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
  • 定数の節