(PHP 4, PHP 5, PHP 7, PHP 8)
defined — Verifica si una constante con el nombre dado existe
Verifica si una constante con el nombre constant_name existe.
Esta función también funciona con las constantes de clase y los tipos enum.
Nota:
Si se desea verificar si una variable existe, utilice isset() ya que defined() solo se aplica a las constantes. Si se desea ver si una función existe, utilice function_exists().
constant_nameEl nombre de la constante.
Nota:
defined() 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 comprobar silenciosamente una constante diferente a la que el mismo identificador sin prefijo haría referencia. Para verificar si una constante declarada en un espacio de nombres está definida, el espacio de nombres debe formar parte del nombre, como en
defined('Mi\Espacio\MICONSTANTE')odefined(__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 true si el nombre de la constante proporcionado por el argumento
constant_name ha sido definido, false en caso contrario.
Ejemplo #1 Verificar la presencia de constantes con defined()
<?php
/* Observe que el nombre de la constante está entre comillas. Este ejemplo verifica
* si la cadena 'TEST' es el nombre de la constante llamada TEST */
if (defined('TEST')) {
echo TEST;
}
interface bar {
const test = 'foobar!';
}
class foo {
const test = 'foobar!';
}
var_dump(defined('bar::test')); // bool(true)
var_dump(defined('foo::test')); // bool(true)
?>Ejemplo #2 Verificación de tipos enum (a partir de PHP 8.1.0)
<?php
enum Suit
{
case Hearts;
case Diamonds;
case Clubs;
case Spades;
}
var_dump(defined('Suit::Hearts')); // bool(true)
?>