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 ?