Zitat Zitat von Cornix Beitrag anzeigen
Verbrauchen sie vielleicht weniger Speicherplatz da sie keine Funktionen wie += oder dergleichen besitzen?
Achtung. Nur Klassen besitzen Methoden (und damit Funktionen). Objekte besitzen Attribute. Variablen sind nur eine Referenz auf ein Objekt. Intern darfst du dir Variablen also nur als Objekt-ID bzw. Speicheradresse vorstellen. Es werden keine Daten in Variablen abgespeichert. Wenn du also z.B. schreibst a = "Hallo", dann ist der String "Hallo" nicht in der Variable a abgespeichert. Er wird im Objektraum abgespeichert. Die Variable a merkt sich nur die Objekt-ID des Strings "Hallo" um im Bedarfsfall auf diesen zuzugreifen.


Zitat Zitat
Man könnte das ganze natürlich auch mit globalen Variablen lösen, aber das ist eigentlich eine Zweckentfremdung der globalen Variablen. Daneben haben globale Variablen (also $foo) den Nachteil im globalen Namensraum zu leben, während man Konstanten problemlos in den Namensraum zugehöriger Module packen kann und dennoch jederzeit auf sie zugreifen kann [...] aber Konstanten zu benutzen wo man Konstanten benutzen sollte und eben nicht globale Variablen ist guter Programmierstil und vereinfacht auch anderen Programmierern das Lesen des Codes (aha hier wird ein konstanter Wert abgefragt) und erleichtert dem Programmierer vielleicht auch den Wechsel zu anderen Sprachen.
Magor bringts auf den Punkt. Das sind, denke ich, die ausschlaggebenden Vorteile von Konstanten. Performance-Vorteile bieten sie jedenfalls keine.