get_defined_constants

(PHP 4 >= 4.1.0, PHP 5)

get_defined_constants Возвращает ассоциативный массив с именами и значениями всех предопределенных констант

Описание

array get_defined_constants ([ bool $categorize = false ] )

Возвращает ассоциативный массив с именами и значениями всех предопределенных констант. Массив также будет включать в себя константы, определенные расширениями, а также созданные функцией 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 предписывало разделять константы на категории.
5.0.0 Добавлен аргумент categorize.

Примеры

Пример #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() - Возвращает массив имен всех скомпилированных и загруженных модулей
  • get_defined_functions() - Возвращает массив всех определённых функций
  • get_defined_vars() - Возвращает массив всех определенных переменных

Коментарии

<?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

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