检查给定名称的常量是否存在

# defined

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

defined — 检查给定名称的常量是否存在

### 说明

function defined(string `$constant_name`): bool

检查给定 `constant_name` 的常量是否已定义。

此函数也可以跟类常量和 Enum 枚举 一起工作。

> 注意:

> 如果你要检查一个变量是否存在，请使用 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 检测 Enum Cases（自 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