(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)
constant — Retorna el valor de una constante
Retorna el valor de la constante name.
constant() es útil cuando se debe leer el valor de una constante, pero su nombre solo se conoce durante la ejecución del script. Por ejemplo, este nombre puede ser el resultado de una función.
Esta función también funciona con las constantes de clase y tipos enum.
nameEl nombre de la constante.
Nota:
constant() toma el nombre como un string ordinario y no lo resuelve con respecto al espacio de nombres actual: el nombre se busca en el espacio de nombres global, por lo que un nombre sin calificar puede devolver silenciosamente una constante diferente a la que el mismo identificador sin prefijo haría referencia. Para recuperar el valor de una constante declarada en un espacio de nombres, el espacio de nombres debe formar parte del nombre, como en
constant('Mi\Espacio\MICONSTANTE')oconstant(__NAMESPACE__ . '\MICONSTANTE'). Como el nombre es una cadena simple, los alias introducidos por sentenciasusey el prefijonamespace\no se aplican a él. En una cadena entre comillas dobles, los separadores de espacio de nombres deben escaparse, como en"Mi\\Espacio\\MICONSTANTE". La parte del espacio de nombres del nombre no distingue entre mayúsculas y minúsculas, el nombre de la constante sí lo hace.
Retorna el valor de la constante.
Si la constante no está definida, se lanza una excepción Error. Anteriormente a PHP 8.0.0, se emitía un error de nivel E_WARNING en este caso.
| Versión | Descripción |
|---|---|
| 8.0.0 |
Si la constante no está definida, constant() ahora lanza una excepción Error; anteriormente se emitía un E_WARNING y se retornaba null.
|
Ejemplo #1 Uso de la función constant() con constantes
<?php
define("MAXSIZE", 100);
echo MAXSIZE;
echo constant("MAXSIZE"); // idéntico a la línea anterior
interface bar {
const test = 'foobar!';
}
class foo {
const test = 'foobar!';
}
$const = 'test';
var_dump(constant('bar::'. $const)); // string(7) "foobar!"
var_dump(constant('foo::'. $const)); // string(7) "foobar!"
?>Ejemplo #2 Uso de la función constant() con tipos enum (a partir de PHP 8.1.0)
<?php
enum Suit
{
case Hearts;
case Diamonds;
case Clubs;
case Spades;
}
$case = 'Hearts';
var_dump(constant('Suit::'. $case)); // enum(Suit::Hearts)
?>