PHP 打印所有常量
官方给的原型:
array get_defined_constants ([ bool $categorize = false ] )
下边是人类的理解:
get_defined_constants(true)
参数为TRUE时:返回一个多维数组,分类为第一维的键名,常量和它们的值位于第二维。
get_defined_constants() e.g #1:
PHP打印所有常量
<?php // PHP打印所有常量 print_r(get_defined_constants()); /* 输出类似 Array ( [E_ERROR] => 1 [E_RECOVERABLE_ERROR] => 4096 [E_WARNING] => 2 [E_PARSE] => 4 [E_NOTICE] => 8 [E_STRICT] => 2048 [E_DEPRECATED] => 8192 [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_USER_DEPRECATED] => 16384 [E_ALL] => 30719 ... ... ) */ ?> |
get_defined_constants() e.g #2:
打印用户自定义常量:
<?php // 打印用户自定义常量 define("CONSTANTS","php-print-constants"); $user_constants = get_defined_constants(TRUE); print_r($user_constants['user']); /* 输出类似 Array ( [CONSTANTS] => php-print-constants [PATH] => /home/qiufeng/ ) */ ?> |
get_defined_constants() e.g #3:
给定一个常量值,返回常量名称:
<?php /** * 给定一个常量值,返回常量名称 * * @param mixed 常量值. * @return string 常量名. * @access public */ function get_constant_name($value) { $constants = get_defined_constants(); $name = array_search($value, $constants, TRUE); return $name; } var_dump(get_constant_name(1)); /* 输出类似 string(7) "E_ERROR" */ ?> |
get_defined_constants() e.g #4:
如果你想过滤,并按常量的前缀来查询(即你已经有一套常量的命名方案),那么你可以使用这个小巧的功能,进行简单的调试:
<?php /** * 给定一个常量名前缀,返回常量名称 * * @param string 常量名前缀 * @return array 常量名和值 * @access public */ function get_prefix_constants ($prefix) { foreach (get_defined_constants() as $key => $value) { if (substr($key,0,strlen($prefix)) == $prefix) { $dump[$key] = $value; } } if(empty($dump)) { return; } return $dump; } define("MY_CONSTANT_ONE",true); define("MY_CONSTANT_TWO",false); define("MY_URL","fengdingbo.com"); print_r(get_prefix_constants("MY_CONSTANT")); /* 返回类似 Array ( [MY_CONSTANT_ONE] => 1 [MY_CONSTANT_TWO] => ) */ ?> |