PHP 8.6.0 Beta 1 is available for testing

get_defined_constants

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

get_defined_constantsDevuelve la lista de constantes y sus valores

Descripción

function get_defined_constants(bool $categorize = false ): array

Devuelve los nombres y valores de las constantes ya definidas. Esto incluye las constantes creadas por las extensiones, y aquellas creadas con la función define() .

Parámetros

categorize

Permite a esta función devolver un array multidimensional con las categorías como claves de la primera dimensión y las constantes junto con sus valores en la segunda dimensión.

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

Resultado del ejemplo anterior es similar a:

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

Valores devueltos

Devuelve un array de constantes en el formato "nombre de la constante" => "valor de la constante", opcionalmente agrupadas por el nombre de la extensión que registró la constante.

Ejemplos

Ejemplo #1 Ejemplo con get_defined_constants()

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

Resultado del ejemplo anterior es similar a:

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
)

Véase también

Found A Problem?

Learn How To Improve This PageSubmit a Pull RequestReport a Bug
+add a note

User Contributed Notes 5 notes

up
24
Bob
18 years ago
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
up
13
R4FC0R3
8 years ago
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
up
9
Anonymous
20 years ago
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] => 
)
up
5
me at gogogadgetscott dot info
21 years ago
<?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, $constants, TRUE); 
 return $name;
}
?>
up
-4
S-Tian
4 years ago
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();
}
?>
+add a note

AltStyle によって変換されたページ (->オリジナル) /