Avatar ·

define() ou const en PHP : quelle est la différence et que vaut-il mieux utiliser pour les constantes ?

Bonjour à tous ! Je suis un développeur PHP débutant, j'écris mon premier projet en PHP pur (sans frameworks). Je suis confronté à une question : comment déclarer correctement les constantes ? Dans les tutoriels et sur Stack Overflow, j'ai vu deux méthodes : via define() et via const. Par exemple : ```php // Méthode 1 define('SITE_NAME', 'Mon site'); define('MAX_LOGIN_ATTEMPTS', 5); // Méthode 2 const SITE_NAME = 'Mon site'; const MAX_LOGIN_ATTEMPTS = 5; ``` Les deux fonctionnent, mais je ne comprends pas quelle est la différence fondamentale entre eux. Quand j'ai cherché sur Google, j'ai trouvé des mentions de PSR-1 et PSR-12, mais c'est écrit en termes généraux : "utilisez const". Mais pourquoi ? define() fonctionne aussi. J'ai aussi remarqué que dans les anciens projets (PHP 5), on utilise partout define(), tandis que dans les projets modernes (PHP 8), on utilise const. Est-ce juste une question de goût ou y a-t-il des raisons techniques ? Ce qui m'intéresse concrètement : 1. Peut-on utiliser const à l'intérieur des classes et en dehors des classes ? 2. Les deux options fonctionnent-elles avec les tableaux ? 3. Y a-t-il une différence de performance ? 4. Que disent les...