Eine Konstante ist ein Bezeichner (Name) für eine simple Variable.
Wie der Name schon ausdrückt, kann sich der Wert einer Konstanten
zur Laufzeit eines Skripts nicht ändern (eine Ausnahme bilden die
Magischen Konstanten,
die aber tatsächlich keine Konstanten sind.) Eine Konstante unterscheidet
zwischen Groß- und KLeinschreinbung (case-sensitive). Nach gängiger
Konvention werden Konstanten immer in Großbuchstaben geschrieben.
Der Name einer Konstanten folgt den gleichen Regeln wie alle anderen
Bezeichner in PHP. Ein gültiger Name beginnt mit einem Buchstaben
oder einem Unterstrich, gefolgt von beliebig vielen Buchstaben, Nummern
oder Understrichen. Als regulärer Ausdruck geschrieben:
[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*
Anmerkung:
Für unsere Zwecke ist ein Buchstabe a-z, A-Z und die ASCII-Zeichen
von 127 bis 255 (0x7f-0xff).
Wie bei superglobals ist der Gültigkeitsbereich einer Konstanten
global. Unabhängig vom Gültigkeitsbereich können Sie in Ihrem Skript
überall auf eine Konstante zugreifen. Für mehr Information zum
Gültigkeitsbereich lesen Sie bitte den Abschnitt über den
Geltungsbereich von Variablen.
For more information on scope, read the manual section on
variable scope.
Syntax
Eine Konstante können Sie über die Funktion define()
definieren. Einmal definiert, kann eine Konstane weder verändert
noch gelöscht werden.
Konstanten können nur scalare Daten (boolean,
integer, float und string)
enthalten.
Den Wert einer Konstanten erhalten Sie ganz einfach durch die Angabe ihres
Namens. Einer Konstanten sollten Sie nicht, wie bei
Variablen, ein $ voranstellen. Ebenso können Sie die
Funktion constant() benutzen um den Wert einer Konstanten
auszulesen, wenn Sie den Namen der Konstanten dynamisch erhalten wollen.
Benutzen Sie get_defined_constants() um eine Liste
aller definierten Konstanten zu erhalten.
Anmerkung:
Konstanten und (globale) Variablen befinden sich in unterschiedlichen
Namensräumen. Das hat zum Beispiel zur Folge, dass TRUE und
$TRUE grundsätzlich unterschiedlich sind.
Falls Sie eine undefinierte Konstante verwenden nimmt PHP an, dass
Sie den Namen der Konstanten selber meinen, genauso als ob Sie einen
string (CONSTANT vs "CONSTANT") angegeben hätten. Falls das
passiert, wird Ihnen ein Fehler vom Typ
E_NOTICE ausgegeben. Lesen Sie hier
nach, warum die Angabe
$foo[bar] falsch ist
(zumindest solange Sie nicht zuerst bar mittels
define() als Konstante definiert haben). Möchten Sie
einfach nur nachprüfen, ob eine Konstante definiert ist, benutzen Sie die
Funktion defined() für diesen Zweck.
Das hier sind die Unterschiede zwischen Konstanten und Variablen:
Konstanten haben kein Dollarzeichen ($)
vorangestellt;
Konstanten können nur über die Funktion define()
definiert werden, nicht durch einfache Zuweisung;
Konstanten können überall definiert werden und auf Ihren Wert
können Sie ohne Rücksicht auf Namensraumregeln von Variablen zugreifen;
Sobald Konstanten definiert sind, können sie nicht neu definiert
oder gelöscht werden; und
Konstanten können nur skalare Werte haben.
Beispiel 8-1. Definiton von Konstanten
<?php define("CONSTANT", "Hallo Welt."); echo CONSTANT; // Ausgabe: "Hallo Welt." echo Constant; // Ausgabe: "Constant" und eine Notice. ?>
|
|