php是否可以确定常量是否是用户定义的?

sli*_*khi 7 php

我知道通常我可以检查是否定义了以下常量:

defined('MY_CONSTANT')
defined('PHP_EOL')
Run Code Online (Sandbox Code Playgroud)

第一个是我自己的用户定义常量.第二个是由php创建的.两者都可以检查defined()并返回一个boolean值.

我的问题是..有没有办法确定它是用户定义的常量还是php创建的常量?例如,MY_CONSTANT应返回一些等效的"用户定义",并PHP_EOL应返回一些"php-defined"的等价物.

Jas*_*ary 11

get_defined_constants()与参数true一起使用以返回所有常量的分类数组.

用户定义的常量位于用户键下:

print_r(get_defined_constants(true));
// outputs:
// Array (
//    [Core] => Array (
//      [PHP_EOL] => 1
//    )
//    [user] => Array (
//      [MY_CONSTANT] => 1
//    )
// )
Run Code Online (Sandbox Code Playgroud)