(PHP 4, PHP 5, PHP 7, PHP 8)
define — Define una constante
Define una constante durante la ejecución.
constant_nameEl nombre de la constante.
Nota:
Es posible definir con define() constantes con nombres reservados o incluso inválidos, donde sus valores pueden (solo) ser recuperados con la función constant(). Sin embargo, hacer esto no se recomienda.
define() toma el nombre como un string ordinario y no lo resuelve con respecto al espacio de nombres actual. Dentro de
namespace Mi\Espacio;,define('MICONSTANTE', 1)defineMICONSTANTEen el espacio de nombres global, silenciosamente y sin error. Para situar la constante en un espacio de nombres, el espacio de nombres debe formar parte del nombre, escrito sin un separador de espacio de nombres inicial, como endefine('Mi\Espacio\MICONSTANTE', 1)odefine(__NAMESPACE__ . '\MICONSTANTE', 1). A diferencia de defined() y constant(), define() no elimina un separador inicial:define('\Mi\Espacio\MICONSTANTE', 1)devuelvetruepero crea una constante que nunca puede ser recuperada. Como el nombre es una cadena simple, los alias introducidos por sentenciasuseno se aplican a él. En una cadena entre comillas dobles, los separadores de espacio de nombres deben escaparse, como en"Mi\\Espacio\\MICONSTANTE".
valueEl valor de la constante.
Aunque es técnicamente posible definir constantes de tipo resource, esto se desaconseja y puede causar comportamientos inesperados.
case_insensitive
Si es true, el nombre de la constante será insensible a mayúsculas/minúsculas:
CONSTANT y Constant
representan valores idénticos.
Definir constantes insensibles a mayúsculas/minúsculas está deprecado a partir de PHP 7.3.0.
A partir de PHP 8.0.0, solo false es un valor aceptable,
pasar true producirá una advertencia.
Nota:
Las constantes insensibles a mayúsculas/minúsculas se almacenan en minúsculas.
| Versión | Descripción |
|---|---|
| 8.1.0 |
value ahora puede ser un objeto.
|
| 8.0.0 |
Pasar true a case_insensitive ahora emite una E_WARNING.
Pasar false sigue siendo permitido.
|
| 7.3.0 |
case_insensitive está deprecado y será eliminado en la versión 8.0.0.
|
Ejemplo #1 Definición de una constante
<?php
define("CONSTANT", "Hola mundo.");
echo CONSTANT; // muestra "Hola mundo."
echo Constant; // muestra "Constant" y emite una advertencia
define("GREETING", "Hola tú.", true);
echo GREETING; // muestra "Hola tú."
echo Greeting; // muestra "Hola tú."
// Funciona desde PHP 7
define('ANIMALS', array(
'perro',
'gato',
'aves'
));
echo ANIMALS[1]; // muestra "gato"
?>
Ejemplo #2 Constantes con Nombres Reservados
Este ejemplo ilustra la posibilidad de definir una constante con el mismo nombre que una constante mágica. Dado que el comportamiento resultante es confuso, esta práctica no se recomienda.
<?php
var_dump(defined('__LINE__'));
var_dump(define('__LINE__', 'test'));
var_dump(constant('__LINE__'));
var_dump(__LINE__);
?>El ejemplo anterior mostrará:
bool(false) bool(true) string(4) "test" int(5)