首页 > PHP > PHP 打印所有常量

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] => 
)
*/
?>
分类: PHP 标签: ,
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.