defined

指定した名前の定数が存在するかどうかを調べる

説明

bool defined(string $constant_name)

constant_name で指定した定数が定義されているかどうかを調べます。

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

注意:

変数が存在するかどうかを知りたければ、isset を利用してください。defined定数にしか適用できません。 関数が存在するかどうかを知りたければ、 function_exists を利用してください。

パラメータ

constant_name

定数名。

戻り値

constant_name で指定した名前の定数が定義されている 場合に true、その他の場合にfalseを返します。

例1 定数のチェック

<?php

/* 引用符の使い方に注意してください。これは重要です。この例では
 * 文字列 'TEST' が、定数 TEST の名前かどうかを調べています。*/
if (defined('TEST')) {
    echo TEST;
}


interface bar {
    const test = 'foobar!';
}

class foo {
    const test = 'foobar!';
}

var_dump(defined('bar::test')); // bool(true)
var_dump(defined('foo::test')); // bool(true)

?>

例2 列挙型のcase をチェックする(PHP 8.1.0 以降)

<?php

enum Suit
{
    case Hearts;
    case Diamonds;
    case Clubs;
    case Spades;
}

var_dump(defined('Suit::Hearts')); // bool(true)

?>

参考

  • define
  • constant
  • get_defined_constants
  • function_exists
  • 定数の節