(PHP 4, PHP 5, PHP 7, PHP 8)
define — Define una constante
Define una constante durante la ejecución.
constant_name
El 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.
value
El valor de la constante.
Aunque es técnicamente posible definir constantes de tipo recurso, 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 resultado del ejemplo sería:
bool(false) bool(true) string(4) "test" int(5)