7 votes

Pouvez-vous attribuer des valeurs aux constantes avec un signe égal après les avoir définies en php?

Je sais que pour définir une constante, vous faites quelque chose comme ça

define("CONSTANT", "Bonjour le monde.");

si je veux changer la valeur de la constante, je devrais refaire define() encore une fois? Pourquoi ne pourrais-je pas simplement faire CONSTANT = "quoi que ce soit"; après qu'elle ait été déjà définie la première fois?

10voto

Andreas Stokholm Points 1103

Toute l'idée d'une constante est qu'elle est constamment et toujours la même. Vous ne pouvez pas changer une constante après l'avoir définie.

Même en utilisant define("CONSTANT", "Bonjour le monde."); retournerait une erreur.

Je viens de le faire très rapidement pour vous montrer ce que vous obtiendriez :

Avis : Constante CONSTANT déjà définie dans /Utilisateurs/stokholm/test.php à la ligne 3

Pile d'appels :
    0,0003     629992   1. {main}() /Utilisateurs/stokholm/test.php:0
    0,0171     630232   2. define() /Utilisateurs/stokholm/test.php:3

1voto

Tim Cooper Points 55292

Les constantes, comme leur nom l'indique, ne peuvent pas être modifiées une fois définies. Utilisez des variables à la place.

0voto

pronskiy Points 569

Dans certains cas, et avec PHP5.6, vous pouvez redéfinir des constantes en utilisant la technique d'alias :

define('MY_CONST', 'valeur_constante');

var_dump(MY_CONST);

define('NEW_MY_CONST', 'nouvelle_valeur_constante');
use const NEW_MY_CONST as MY_CONST;

var_dump(MY_CONST);

https://3v4l.org/sF7Pb#v8.3.6

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X