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

# defined

(PHP 4, PHP 5, PHP 7, PHP 8)

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

### 説明

function defined(string `$constant_name`): bool

`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() - 指定した関数が定義されている場合に true を返す
- 定数の節

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open