Avatar ·

PHP: define() vs const — quelle est la différence et quoi utiliser de mieux ?

Bonjour à tous ! Je code en PHP depuis environ un an, et une question me taraude constamment. Je vois que dans différents projets, les constantes sont déclarées de différentes manières : certains utilisent define(), d'autres le mot-clé const. Par exemple, dans les anciens frameworks, je vois souvent ce code : ```php define('DB_HOST', 'localhost'); define('DB_NAME', 'mydb'); ``` Et dans les projets modernes avec Laravel ou Symfony, ceci : ```php class Config { const API_KEY = 'abc123'; const TIMEOUT = 30; } ``` Ou même simplement dans la portée globale : ```php const MAX_USERS = 100; ``` J'ai lu PSR-1 et PSR-12, mais c'est assez vague. Il est recommandé d'utiliser const, mais sans expliquer pourquoi. J'ai essayé les deux méthodes — et les deux fonctionnent. Mais ce qui me trouble, c'est que define() permet de définir des constantes à l'intérieur de blocs if, alors que const non. Et j'ai aussi entendu dire que dans les nouvelles versions de PHP, const est devenu plus rapide. Est-ce vrai ? Dites-moi, s'il vous plaît, dans quelles situations quelle méthode est la meilleure ? Y a-t-il des conseils pratiques ?