get_defined_constants

(PHP 4 >= 4.1.0, PHP 5)

get_defined_constantsReturns an associative array with the names of all the constants and their values

Description

array get_defined_constants ([ bool $categorize = false ] )

Returns the names and values of all the constants currently defined. This includes those created by extensions as well as those created with the define() function.

Parameters

categorize

Causing this function to return a multi-dimensional array with categories in the keys of the first dimension and constants and their values in the second dimension.

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

The above example will output something similar to:

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
        )

)

Return Values

Returns an array of constant name => constant value array, optionally groupped by extension name registering the constant.

Changelog

Version Description
5.3.1 Windows only: Core constants are categorized under Core, previously mhash.
5.3.0 Core constants are categorized under Core, previously internal. On Windows, the Core Constants are categorized under mhash.
5.2.11 The categorize parameter now operates appropriately. Previously, the categorize parameter was interpreted as !is_null($categorize), making any value other than NULL force the constants to be categorized.
5.0.0 The categorize parameter was added.

Examples

Example #1 get_defined_constants() Example

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

The above example will output something similar to:

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
)

See Also

Коментарии

<?php
/**
 * Convert constant value into string name.
 *
 * @param  mixed  Constant value.
 * @return string Constant name.
 * @access public
 */
function sch_get_consant($value)
{
   
$constants get_defined_constants();
   
$name array_search($value$constantsTRUE);   
    return 
$name;
}
?>
2005-06-18 14:14:22
http://php5.kiev.ua/manual/ru/function.get-defined-constants.html
Автор:
If you want to filter through and return only the prefix for your constants (i.e. you have constants with a naming scheme), then you can use this quick little function. It comes in handy for debugging.

<?php
function returnConstants ($prefix) {
    foreach (
get_defined_constants() as $key=>$value
        if (
substr($key,0,strlen($prefix))==$prefix$dump[$key] = $value
    if(empty(
$dump)) { return "Error: No Constants found with prefix '".$prefix."'"; }
    else { return 
$dump; }
}
?>

Example:

<?php
define
("SITENAME_OPTION_ONE",true);
define("SITENAME_OPTION_TWO",false);
define("SITENAME_URL","foo");

print_r(returnConstants("SITENAME_OPTION"));
?>

Will return:

Array
(
    [SITENAME_OPTIONONE] => 1
    [SITENAME_OPTIONTWO] => 
)
2006-01-05 13:29:09
http://php5.kiev.ua/manual/ru/function.get-defined-constants.html
Автор:
Add this method to your class definition if you want an array of class constants (get_defined_constants doesn't work with class constants as Peter P said above):

<?php
public function get_class_constants()
{
   
$reflect = new ReflectionClass(get_class($this));
    return 
$reflect->getConstants());
}
?>

You could also override stdObject with it so that all your classes  have this method
2008-08-08 00:50:34
http://php5.kiev.ua/manual/ru/function.get-defined-constants.html
Автор:
If you want to access directly on one category, just use:

<?php

print_r
(get_defined_constants(true)['Core']);

?>

you can replace 'Core' by the category you wish (e.g. user):

<?php

print_r
(get_defined_constants(true)['user']);

?>

Warning: only use this on development side
2018-02-16 08:14:00
http://php5.kiev.ua/manual/ru/function.get-defined-constants.html
Автор:
If you want to create a static method that you can copy and paste into each class you have constants created, you can use:

<php
public static function get_class_constants(): array
{
    $reflect = new ReflectionClass(self::class);

    return $reflect->getConstants();
}
?>
2022-01-19 00:31:13
http://php5.kiev.ua/manual/ru/function.get-defined-constants.html

    Поддержать сайт на родительском проекте КГБ