(PHP 4, PHP 5, PHP 7, PHP 8)
define — Définit une constante
Définit une constante à l'exécution.
constant_name
Le nom de la constante.
Note:
Il est possible de définir avec define() des constantes avec des noms réservés ou même invalide, où leur valeur peuvent (seulement) être récupéré avec la fonction constant(). Cependant, faire ceci n'est pas recommandé.
value
La valeur de la constante. En PHP 5, value
doit
être une valeur scalaire (entier, nombre décimal, chaîne de caractères,
booléen, ou null
)
En PHP 7, les valeurs tableau sont aussi autorisé.
Il est techniquement possible de définir des constantes de type
ressource, mais cela est fortement déconseillé, et
peut causer des comportements inattendus.
Bien qu'il est techniquement possible de définir des constantes de type ressource, ceci est déconseillé et peut causer des comportements inattendus.
case_insensitive
S'il vaut true
, le nom de la constante sera insensible à la casse :
CONSTANT
et Constant
représentent des valeurs identiques.
Définir des constantes insensibles à la casse est obsolète à partir de PHP 7.3.0.
À partir de PHP 8.0.0, seul false
est une valeur acceptable,
passer true
produira un avertissement.
Note:
Les constantes insensibles à la casse sont stockées en minuscule.
Cette fonction retourne true
en cas de succès ou false
si une erreur survient.
Version | Description |
---|---|
8.0.0 |
Passer true à case_insensitive émet désormais une E_WARNING .
Passer false est toujours autorisé.
|
7.3.0 |
case_insensitive est obsolète et sera supprimée dans la version 8.0.0.
|
7.0.0 | Les valeurs array sont autorisées. |
Exemple #1 Définition d'une constante
<?php
define("CONSTANT", "Bonjour le monde.");
echo CONSTANT; // affiche "Bonjour le monde."
echo Constant; // affiche "Constant" et émet une alerte
define("GREETING", "Salut toi.", true);
echo GREETING; // affiche "Salut toi."
echo Greeting; // affiche "Salut toi."
// Fonctionne depuis PHP 7
define('ANIMALS', array(
'chien',
'chat',
'oiseaux'
));
echo ANIMALS[1]; // affiche "chat"
?>
Exemple #2 Constantes avec des Noms Réservés
Cet exemple illustre la possibilité de définir une constante avec le même nom qu'une constante magique. Puisque le comportement qui en résout porte à confusion, cette pratique n'est pas recommandée.
<?php
var_dump(defined('__LINE__'));
var_dump(define('__LINE__', 'test'));
var_dump(constant('__LINE__'));
var_dump(__LINE__);
?>
L'exemple ci-dessus va afficher :
bool(false) bool(true) string(4) "test" int(5)