Konstanten
Inhaltsverzeichnis
Eine Konstante ist ein Bezeichner (Name) für einen einfachen Wert. Wie der Name bereits nahelegt, kann der Wert einer Konstanten zur Laufzeit des Skripts nicht verändert werden (außer bei Magischen Konstanten, die nicht wirklich Konstanten sind). Konstanten unterscheiden standardmäßig zwischen Groß- und Kleinschreibung. Nach gängiger Konvention werden Konstanten immer in Großbuchstaben geschrieben.
Hinweis:
Vor PHP 8.0.0 konnten Konstanten, die mit der Funktion define() definiert wurden, ohne Berücksichtigung der Groß- und Kleinschreibung verwendet werden.
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, Ziffern oder
Unterstrichen. Als regulärer Ausdruck könnte das so beschrieben werden:
^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$
Es ist möglich, Konstanten mit reservierten oder gar ungültigen Namen mittels define() zu definieren, deren Wert nur mit der Funktion constant() gelesen werden kann. Allerdings wird dies nicht empfohlen.
Siehe auch Userland-Namensregeln.
Beispiel #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");
// Ungültige Namen für Konstanten
define("2FOO", "irgendwas");
// Folgendes ist korrekt, sollte aber vermieden werden:
// PHP könnte eines Tages eine magische Konstante unterstützen,
// die Ihr Skript nicht mehr wie gewünscht funktionieren lässt
define("__FOO__", "irgendwas");
?>
Hinweis: Für unsere Zwecke ist hier ein Buchstabe a-z, A-Z und die ASCII-Zeichen von 128 bis 255 (0x80-0xff).
Wie bei superglobals ist der Geltungsbereich einer Konstanten global. Unabhängig vom Geltungsbereich kann in einem Skript überall auf eine Konstante zugegriffen werden. Für mehr Information zum Geltungsbereich lesen Sie bitte den Abschnitt über den Geltungsbereich von Variablen.
Hinweis: Seit PHP 7.1.0 können Klassenkonstanten eine Sichtbarkeit von protected oder private deklarieren, wodurch sie nur im hierarchischen Bereich der Klasse zur Verfügung stehen, in der sie definiert sind.