# 4.4.2 Konstanten

Die Verwendung von Konstanten bietet den Vorteil, dass der Wert nicht irgendwo im Programm geändert werden kann. Konstanten sollten im Programmkopf oder in einer `.ini.php`-Datei gesetzt werden, beispielsweise in einer Datei `config.ini.php` oder `const.ini.php`, die über `require_once()` eingebunden wird.

- Konstanten werden gemäß den Namenskonventionen in Großbuchstaben geschrieben. Verwendet werden Konstanten wie Variablen jedoch ohne das `$`-Zeichen.
- Mit der Funktion `defined()` kann man überprüfen, ob eine Konstante bereits gesetzt ist.

Verwendung von `const`

    1
    2
    3
    4
    5
    6
    7
    <?php
    const AUTOR = "Thomaschewski";
    echo "Ausgabe der Konstanten: ", AUTOR, "<br>";

    if (defined('AUTOR')) {
        echo "Die Konstante AUTOR ist gesetzt.";
    }

Ausgabe:
Ausgabe der Konstanten: Thomaschewski
Die Konstante AUTOR ist gesetzt.

Bei größeren Projekten sollten alle Konstanten in einer eigenen (Konfigurations-)Datei stehen, da so das Anpassen der Software deutlich vereinfacht wird.

## Magische Konstanten

PHP hat sogenannte magische Konstanten, die mit zwei Unterstrichen am Anfang und am Ende geschrieben werden.

Magische Konstante | Beschreibung
--- | ---
`__LINE__` | Aktuelle Zeile: Beinhaltet die aktuelle Zeilennummer, in der `__LINE__` verwendet wird.
`__FILE__` | Aktuelle Datei: Beinhaltet den Dateinamen, in dem `__FILE__` verwendet wird.
`__DIR__` | Aktuelles Verzeichnis: Beinhaltet das aktuelle Verzeichnis, in dem die Datei liegt, in der `__DIR__` verwendet wird.
`__FUNCTION__` | Aktuelle Funktion: Beinhaltet die aktuelle Funktion, in der `__FUNCTION__` verwendet wird.
`__METHOD__` | Aktuelle Methode: Beinhaltet die aktuelle Methode, in der `__METHOD__` verwendet wird.
`__CLASS__` | Aktuelle Klasse: Beinhaltet die aktuelle Klasse, in der `__CLASS__` verwendet wird.
`__TRAIT__` | Aktuelles Trait: Beinhaltet das aktuelle Trait, in der `__TRAIT__` verwendet wird.
`__NAMESPACE__` | Aktueller Namensraum: Beinhaltet den aktuellen Namensraum, in dem `__NAMESPACE__` verwendet wird.

Hinweis

Die letzten vier magischen Konstanten können nur sinnvoll in der objektorientierten Programmierung genutzt werden.

Aufgabe

Kopieren Sie den folgenden Sourcecode in ein PHP-Script auf Ihren Server und schauen Sie sich das Ergebnis an.

    1
    2
    3
    4
    5
    6
    7
    <?php
    $flower = ["Tulpe" => "Gelb", "Rose" => "Rot", "Kornblume" => "Blau"];
    echo "Die Farbe der Rose ist " . $flower["Rose"] . "<br>";
    echo __DIR__ . "<br>";
    echo __FILE__ . "<br>";
    echo __LINE__ . "<br>";
    ?>