Konstante
Inhaltsverzeichnis |
Definition
Eine Konstante (engl. constant) repräsentiert einen festen unveränderlichen Wert, im Gegensatz zu einer Variable, welche einen veränderlichen Wert darstellt.
Einmal zugewiesen kann eine Konstante ihren Wert nicht mehr ändern.
Verwendung
Konstanten werden dort verwendet, wo man Variablen verwenden könnte, deren Inhalt sich aber zur Laufzeit nicht ändert. Konstanten werden mit der Funktion define() definiert. Sie erwartet als Parameter den Namen der neuen Konstante als String (also in Anführungszeichen eingeschlossen) sowie den Wert. Die Case-Sensitivität kann man mit Hilfe des dritten Parameters abstellen. Gültige Konstanten sind von einem skalaren Typ. Den Wert einer Konstante erhält man durch einfache Angabe oder als Rückgabewert der Funktion constant().
Konstanten-Namen sollten bei einem sauberem Programmierstil immer in Großbuchstaben geschrieben und durch Unterstriche ('_') getrennt werden.
Konstanten werden oft verwendet, um Zahlen einen Namen zu geben, z. B. als Übergabe-Parameter für Funktionsaufrufe.
Beispiel
1 define( 'MEINE_KONSTANTE', 'konstantentinhalt' ); 2 echo MEINE_KONSTANTE; 3 echo constant( 'MEINE_KONSTANTE' );
Ausgabe:
konstantentinhalt konstantentinhalt
Beispiel als Funktionsparameter
1 define( '_MYPRINT_PRINT_AS_STRING', 1 ); 2 define( '_MYPRINT_PRINT_AS_INT', 2 ); 3 define( '_MYPRINT_PRINT_AS_FLOAT', 3 ); 4 5 function myPrint( $value, $print_as = _MYPRINT_PRINT_AS_STRING ) 6 { 7 switch ( $print_as ) 8 { 9 case _MYPRINT_PRINT_AS_FLOAT : 10 echo (float) $value; 11 break; 12 13 case _MYPRINT_PRINT_AS_INT : 14 echo (int) $value; 15 break; 16 17 case _MYPRINT_PRINT_AS_STRING : 18 default : 19 echo (string) $value; 20 break; 21 } 22 } 23 24 myPrint( 12.25, _MYPRINT_PRINT_AS_INT );
Klassenkonstanten
Mit PHP 5 kann man auch Klassen Konstanten zuweisen:
1 class Foo { 2 const KONSTANTE = 'Konstante'; 3 } 4 5 echo Foo::KONSTANTE;
Vorteile
- Wartbarkeit, da nichtssagenden nummerischen Werten ein sprechender Name gegeben werden kann
- Sicherheit, der Inhalt kann nicht zur Laufzeit geändert werden