Konstanten
Der Wert einer Konstante ist, im Gegensatz zu einer Variable, nicht mehr veränderlich sobald dieser definiert wurde. Dies ist nützlich, um zum Beispiel feste, unveränderliche Werte zu definieren, beispielsweise die maximale Länge eines Beitrags oder die Version eures Scripts.
Syntax
Um eine Konstante zu definieren, nutzt ihr das Schlüsselwort const . Auf die Konstante könnt ihr dann zugreifen ähnlich wie auf Variablen, allerdings ohne das Dollarzeichen vor dem Namen.
<?php const VERSION = "1.0.5"; const MAX_EMAIL_LENGTH = 10; $email = "[email protected]"; echo "Dies ist Version ".VERSION; if( strlen($email) > MAX_EMAIL_LENGTH) { echo "<br /> Die E-Mail darf maximal ".MAX_EMAIL_LENGTH." Zeichen lang sein."; } ?>
Im obigen Beispiel wurden zwei Konstanten definiert, VERSION und MAX_EMAIL_LENGTH. Es hat sich eingebürgert, dass Konstanten stets aus Großbuchstaben bestehen, aber dies ist keine Verpflichtung.
Ihr könnt auf diese ähnlich zugreifen wie auf Variablen, nur ihm Gegensatz zu Variablen kann deren Wert nicht mehr verändert werden. Versucht ihr Konstanten einen neuen Wert zuzuweisen, so erhaltet ihr eine entsprechende Fehlermeldung. Ihr könnt somit sicher sein, dass in keiner anderen Stelle im Code der Wert der Konstante MAX_EMAIL_LENGTH verändert wird.
Vor PHP 5.6 können Konstanten nur einfache Datentypen (boolean, integer, float und string) enthalten. Ab PHP 5.6 an ist es ebenfalls möglich Arrays in Konstanten zu speichern.
Klassenkonstanten
Bei der Objektorientierte Programmierung lassen sich ebenfalls Klassenkonstanten definieren, die nur in Kombination mit einer Klasse gültig sind:
<?php class User { const VERSION = "1.0.5"; const MAX_EMAIL_LENGTH = 10; public function checkEmail($email) { if(strlen($email) > self::MAX_EMAIL_LENGTH) { return false; } return true; } } $user = new User(); echo "Die maximale Länge ist ".User::MAX_EMAIL_LENGTH."<br />"; if(!$user->checkEmail("[email protected]")) { echo "Die E-Mail Adresse ist zu lang"; } ?>
Auf diese Konstanten könnt ihr dann entweder mittels Klassenname::NAME_DER_KONSTANTE zugreifen oder bei Methoden innerhalb der Klasse mittels self::NAME_DER_KONSTANTE .
Vordefinierte Konstanten
PHP besitzt diverse vordefinierte Konstanten, die je nach Anwendungsfall nützlich sein können. Mittels PHP_VERSION lässt sich beispielsweise die PHP-Version herausfinden. Alle vordefinierten Konstanten findet ihr im PHP Handbuch - Vordefinierte Konstanten.
<?php echo "Aktuelle PHP-Version: ".PHP_VERSION; echo "<br /> Betriebssystem des Server: ".PHP_OS; echo "<br /> Maximale Größe für ein Integer: ".PHP_INT_SIZE; ?>
Magische Konstanten
Es existieren ebenfalls magische Konstanten in PHP. Im Gegensatz zu gewöhnlichen Konstanten ändern diese ihren Wert je nachdem wo ihr diese im Programmcode verwendet. Ein Beispiel ist die magische Konstante __LINE__, diese gibt stets die aktuelle Zeile in eurem Programmcode an. Alle magischen Konstanten findet ihr im PHP Handbuch - Magische Konstanten.
<?php echo "Aktuelle Programmzeile: ".__LINE__; echo "<br /> Aktuelle Programmzeile: ".__LINE__; echo "<br /> Aktueller Dateiname: ".__FILE__; echo "<br /> Aktuelles Verzeichnis: ".__DIR__; ?>
Autor: Nils Reimers