constant
PHP Manual
PHP Manual»その他の関数»constant

constant

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

constant — 定数の値を返す

説明

function constant(string $name): mixed

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

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

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

パラメータ

name

定数名。

注意:

constant() は名前を通常の文字列として受け取り、 現在の名前空間を基準に 解決することはありません。 名前はグローバル名前空間から探されます。 そのため非修飾名を渡すと、同じ名前を識別子としてそのまま書いた場合に 参照される定数ではなく、グローバル名前空間にある同名の定数の値が 黙って返されることがあります。 名前空間の中で宣言された定数の値を取得するには、 constant('My\Namespace\MYCONST') や constant(__NAMESPACE__ . '\MYCONST') のように、 名前空間を名前の一部に含める必要があります。 名前は単なる文字列なので、use 文で導入したエイリアスや namespace\ プレフィックスは適用されません。 ダブルクォートで囲んだ文字列の中では、 "My\\Namespace\\MYCONST" のように 名前空間区切り文字をエスケープする必要があります。 名前のうち名前空間の部分は大文字小文字を区別しませんが、定数名は区別します。

戻り値

定数の値を返します。

エラー / 例外

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

変更履歴

バージョン 説明
8.0.0 定数が定義されていない場合は、 constant() は Error をスローするようになりました。 これより前のバージョンでは、 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() - すべての定数の名前とその値を連想配列として返す
  • 定数の節

To Top