define() ou const em PHP: qual a diferença e o que é melhor usar para constantes?
Olá a todos! Sou um desenvolvedor PHP iniciante, escrevendo meu primeiro projeto em PHP puro (sem frameworks). Me deparei com a questão: como declarar constantes corretamente? Em livros e no Stack Overflow vi duas formas: via define() e via const. Por exemplo:\n\n```php\n// Forma 1\ndefine('SITE_NAME', 'Meu site');\ndefine('MAX_LOGIN_ATTEMPTS', 5);\n\n// Forma 2\nconst SITE_NAME = 'Meu site';\nconst MAX_LOGIN_ATTEMPTS = 5;\n```\n\nAmbas funcionam, mas não entendo qual é a diferença fundamental entre elas. Quando pesquisei, encontrei menções sobre PSR-1 e PSR-12, mas lá está escrito de forma genérica: "use const". Mas por quê? define() também funciona.\n\nTambém notei que em projetos antigos (PHP 5) usa-se define() em toda parte, enquanto nos modernos (PHP 8) usa-se const. É apenas uma questão de gosto ou há razões técnicas?\n\nEspecificamente, estou interessado em:\n1. Posso usar const dentro e fora de classes?\n2. Ambas as opções funcionam com arrays?\n3. Há diferença de performance?\n4. O que dizem as