PHP/Konstanten
Konstanten sind Speicherplätze, deren Inhalte nach der ersten Zuweisung nicht mehr verändert werden können. Sie sind in allen Programmier- und Skriptsprachen nützlich, um feste, immer wieder benötigte Werte mit verständlichen Begriffen zu umschreiben. Ihr Einsatz erhöht die Lesbarkeit der Programme und erleichtert die Durchführung von Änderungen.
Deklaration von Konstanten
Konstanten werden mit dem Schlüsselwort "define" deklariert. Zu leichteren Erkennung empfiehlt es sich, Konstanten mit Grossbuchstaben zu bezeichnen; das fehlende "$"-Zeichen allein ist weniger auffällig. Die Konstantendefinition sollte konsequent in Anführungszeichen gesetzt werden. Der Typ ergibt sich aus den für Variablen geltenden Ausführungen. Auf die so erzeugte Konstante kann wie auf eine Variable zugegriffen werden. Hier wird die Konstante "DSN" definiert und ihr danach der Wert "shop" zugewiesen.
define("DSN", "DSN=shop");
echo "Die aktuelle DSN ist: ", DSN;
|
Die aktuelle DSN ist: DSN=shop |
Konstanten sind überall im Skript gültig und müssen nicht mit Hilfe der Anweisung "global" sichtbar gemacht werden.
Konstanten können nur skalare Werte enthalten. Für komplexe Variablen müssen zwingend Variablen verwendet werden, auch wenn der Inhalt im Programmtext nicht variable sein sollte.
Konstanten können nicht nachträglich (zur Laufzeit) verändert werden. Folgender Ausdruck ist also unzulässig.
DSN = "DSN=shop";
|
Die Funktion "defined" wird verwendet, um festzustellen, ob eine bestimmte Konstante definiert wurde. Sie gibt "TRUE" zurück, wenn unter dem angegebenen Namen eine Konstante definiert wurde.
if (defined("DSN"))
{
## Aktion
}
|
Manchmal werden Ausdrücke erstellt, die Funktionen verlangen. Für solche Fälle kennt PHP die Funktion "constant" . Als Parameter ist der Name der Konstanten in Form einer Zeichenkette anzugeben.
define ("FARBE", "rot");
echo constant("FARBE");
|
rot |
Mit der Funktion "get_defined_constants" können alle definierten Konstanten ermittelt werden. Sie gibt ein Array mit den Namen und Definitionen zurück. Zur bequemen Anzeige kann folgender Code verwendet werden.
<?php
echo "<pre>";
print_r(get_defined_constants());
echo "</pre>";
?>
|
Array ( [E_ERROR] => 1 [E_RECOVERABLE_ERROR] => 4096 ... [MYSQLI_REPORT_OFF] => 0 ) |
Vordefinierte Konstanten
Abhängig von der Installation stellt PHP einige oder alle der folgenden vordefinierten Konstanten zur Verfügung.
Konstante | Beschreibung |
---|---|
PHP_VERSION | Versionsnummer des PHP-Interpreters. Sie kann in Skripten verwendet werden, die sich an bestimmte Bedingungen der Versionen anpassen. |
PHP_OS | Betriebssystem. Es ist vor allem bei Operationen im Dateisystem wichtig. |
DEFAULT_INCLUDE_PATH | Standardpfad, in dem Dateien gesucht werden. |
PEAR_INSTALL_DIR | Installationsverzeichnis der Erweiterung PEAR. |
PEAR_EXTENSION_DIR | Erweiterungsverzeichnis der Erweiterung PEAR. |
PHP_EXTENSION_DIR | Pfad zu kompilierten PHP-Erweiterungen. |
PHP_BINDIR | Verzeichnis zu PHP selbst. |
PHP_LIBDIR | Verzeichnis der PHP-Bibliotheken. |
PHP_DATADIR | Datenverzeichnis. |
PHP_SYSCONFDIR | Konfigurationsverzeichnis. |
PHP_LOCALSTATEDIR | Ablageort lokaler Statusdateien. |
PHP_CONFIG-FILE_PATH | Pfad zur Konfigurationsdatei "php.ini". |
In den meisten Programmiersprachen können die Zustände "wahr" und "falsch" durch eine Konstante dargestellt werden. Aufgrund des schwachen Typkonzepts von PHP wird ersatzweise angenommen, dass Werte ungleich 0 oder "0" als "wahr" betrachtet werden. Um trotzdem lesbare Skripte erzeugen zu können, werden die Konstanten "TRUE" und "FALSE" verwendet, die intern als 1 und 0 dargestellt werden. Auch die kleine Schreibweise "true" und "false" ist zulässig. Zusätzlich gibt es die Konstante "NULL" bzw. "null", die einen nicht vorhandenen Wert darstellt.
Pseudokonstanten
Für die Fehlersuche sind vier sogenannte Pseudokonstanten (benutzerseitig nicht änderbare Werte) wichtig, die immer die Datei (Skript) und die Zeilennummer enthalten, die gerade abgearbeitet wird. Wurde ein Fehler abgefangen, so kann in einer Fehlerausgabe auf diese Pseudokonstanten verwiesen und so die Quelle des Fehlers festgestellt werden.
Pseudokonstante | Beschreibung |
---|---|
__FILE__ | Enthält den Dateinamen des Skripts. Wenn der aktuelle Befehl sich in einer mit "include" eingebundenen Datei befindet, so wird der Name des Moduls ausgegeben. |
__LINE__ | Enthält die Zeilennummer, auf der sich der Befehl gerade befindet. Die Nummer ist relativ zu "__FILE__". |
__CLASS__ | Enthält die aktuelle Klasse, wenn Klassen verwendet werden. |
__METHOD__ | Enthält die aktuelle Methode, wenn innerhalb einer Klasse verwendet. Der Methodenname wird dabei immer in Kleinbuchstaben zurückgegeben. |
__FUNCTION__ | Liefert den Namen der Funktion. Der Funktionsname wird dabei immer in Kleinbuchstaben zurückgegeben |
Bei der Entwickluing von fehlertoleranten Anwendungen sind auich die Konstanten "E_ERROR", "E_WARNING", "E_PARSE", "E_NOTICE" und "E_STRICT" von Bedeutung. "E_ALL" bezeichnet alle Fehlertypen. Diese Konstanten werden mit der Funktion "error_reporting" eingesetzt.
"E_Stricht" kann benutzt werden, um vom Parser Tipps zu erhalten, wie der Code "PHP5-gerecht" optimiert werden kann. Auf produktiven Systemen sollte diese Option nicht genutzt werden.
Vordefinierte Variablen
Neben den Konstanten kennt PHP auch viele vordefinierte Variablen, darunter die superglobalen Arrays. Die Verwendung anstatt einer Konstanten erfolgt, weil Konstanten keine Arrays aufnehmen können.