PHP: define() vs const — cuál es la diferencia y qué es mejor usar?
¡Hola a todos! Llevo escribiendo en PHP alrededor de un año, y constantemente me atormenta una pregunta. Veo que en diferentes proyectos las constantes se declaran de distintas maneras: unos usan define(), otros — la palabra clave const.
Por ejemplo, en frameworks antiguos a menudo veo este código:
```php
define('DB_HOST', 'localhost');
define('DB_NAME', 'mydb');
```
Y en proyectos modernos con Laravel o Symfony — esto:
```php
class Config {
const API_KEY = 'abc123';
const TIMEOUT = 30;
}
```
O incluso simplemente en el ámbito global:
```php
const MAX_USERS = 100;
```
Leí PSR-1 y PSR-12, pero allí está escrito de manera bastante vaga. Al parecer, se recomienda usar const, pero no se explica por qué. Probé ambas opciones — y ambas funcionan. Pero me confunde que define() permite definir constantes dentro de bloques if, mientras que const no. Y también he oído que en las nuevas versiones de PHP const se ha vuelto más rápido. ¿Es cierto?
Por favor, indíquenme en qué situaciones es mejor cada método? ¿Hay alguna prácti