# get_defined_constants

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

get_defined_constants — 返回所有常量的关联数组，键是常量名，值是常量值

### 说明

get_defined_constants ([ bool `$categorize` = false ] ) : array

返回当前所有已定义的常量名和值。 这包含 define() 函数所创建的，也包含了所有扩展所创建的。

### 参数

`categorize`

  让此函数返回一个多维数组，分类为第一维的键名，常量和它们的值位于第二维。

      <?php
      define("MY_CONSTANT", 1);
      print_r(get_defined_constants(true));
      ?>

  以上例程的输出类似于：

      Array
      (
          [Core] => Array
              (
                  [E_ERROR] => 1
                  [E_WARNING] => 2
                  [E_PARSE] => 4
                  [E_NOTICE] => 8
                  [E_CORE_ERROR] => 16
                  [E_CORE_WARNING] => 32
                  [E_COMPILE_ERROR] => 64
                  [E_COMPILE_WARNING] => 128
                  [E_USER_ERROR] => 256
                  [E_USER_WARNING] => 512
                  [E_USER_NOTICE] => 1024
                  [E_ALL] => 2047
                  [TRUE] => 1
              )

          [pcre] => Array
              (
                  [PREG_PATTERN_ORDER] => 1
                  [PREG_SET_ORDER] => 2
                  [PREG_OFFSET_CAPTURE] => 256
                  [PREG_SPLIT_NO_EMPTY] => 1
                  [PREG_SPLIT_DELIM_CAPTURE] => 2
                  [PREG_SPLIT_OFFSET_CAPTURE] => 4
                  [PREG_GREP_INVERT] => 1
              )

          [user] => Array
              (
                  [MY_CONSTANT] => 1
              )

      )

### 返回值

返回的数组为 常量名 => 常量值，也可以按注册变量的扩展名称来分组。

### 更新日志

版本 | 说明
--- | ---
5.3.1 | 仅作用于 Windows：内核常量归类到 Core，之前是 mhash。
5.3.0 | 内核常量归类为 Core，之前是 internal。在 Windows 上，内核常量归类到 mhash。
5.2.11 | `categorize` 参数现在可以合适得被处理。 在此之前，`categorize` 被解释为 !is_null($categorize)，导致任何非 `NULL` 的值会强制常量分类。

### 范例

Example #1 get_defined_constants() 例子

    <?php
    print_r(get_defined_constants());
    ?>

以上例程的输出类似于：

    Array
    (
        [E_ERROR] => 1
        [E_WARNING] => 2
        [E_PARSE] => 4
        [E_NOTICE] => 8
        [E_CORE_ERROR] => 16
        [E_CORE_WARNING] => 32
        [E_COMPILE_ERROR] => 64
        [E_COMPILE_WARNING] => 128
        [E_USER_ERROR] => 256
        [E_USER_WARNING] => 512
        [E_USER_NOTICE] => 1024
        [E_ALL] => 2047
        [TRUE] => 1
    )

### 参见

- defined() - 检查某个名称的常量是否存在
- get_loaded_extensions() - 返回所有编译并加载模块名的 array
- get_defined_functions() - 返回所有已定义函数的数组
- get_defined_vars() - 返回由所有已定义变量所组成的数组