define() oder const in PHP: Was ist der Unterschied und was sollte man für Konstanten verwenden?
Hallo zusammen! Ich bin ein PHP-Anfänger und schreibe mein erstes Projekt in reinem PHP (ohne Frameworks). Ich bin auf die Frage gestoßen: Wie deklariert man Konstanten richtig? In Lehrbüchern und auf Stack Overflow habe ich zwei Methoden gesehen: über define() und über const. Zum Beispiel:
```php
// Methode 1
define('SITE_NAME', 'Meine Seite');
define('MAX_LOGIN_ATTEMPTS', 5);
// Methode 2
const SITE_NAME = 'Meine Seite';
const MAX_LOGIN_ATTEMPTS = 5;
```
Beide funktionieren, aber ich verstehe nicht, worin der grundlegende Unterschied besteht. Als ich gegoogelt habe, fand ich Erwähnungen von PSR-1 und PSR-12, aber dort steht allgemein: "Verwende const". Aber warum? define() funktioniert doch auch.
Außerdem ist mir aufgefallen, dass in alten Projekten (PHP 5) überall define() verwendet wird, während in modernen (PHP 8) const verwendet wird. Ist das nur Geschmackssache oder gibt es technische Gründe?
Konkret interessiert mich:
1. Kann man const innerhalb und außerhalb von Klassen verwenden?
2. Funktionieren beide Varianten mit Arrays?
3. Gibt es einen Unterschied in der Performance?
4. Was sagen die Standards?
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen