PHP Handbuch
Zurück |  | Weiter

# Kapitel 13. Konstanten

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]*

Beispiel 13-1. Gültige und ungültige Namen für Konstanten

`<?php
// Gültige Namen für Konstanten
define("FOO", "irgendwas");
define("FOO2", "etwas anderes");
define("FOO_BAR", "irgendwas ganz anderes")
// Invalid constant names
define("2FOO", "irgendwas");
// Folgendes ist korrekt, sollte aber vermieden werden:
// Eines Tages könnte es in PHP eine Magische Konstante
// __FOO__ geben und Ihr Skript wird dadurch nicht mehr
// wie gewünscht funktionieren.
define("__FOO__", "irgendwas");
?>`

> 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.

# 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 13-2. Definiton von Konstanten

`<?php define("CONSTANT", "Hallo Welt."); echo CONSTANT; // Ausgabe: "Hallo Welt." echo Constant; // Ausgabe: "Constant" und eine Notice. ?>`

Zurück | Zum Anfang | Weiter
Variablen außerhalb von PHP | Nach oben | Magische Konstanten