Suche nach als

Konstante

Auf dieser Seite:

Möchte ich einen Wert niemals verändern aber mehrmals nutzen, kann ich statt einer Variablen eine eigene Konstante definieren. Und in PHP hat es auch vorgegebene, 'magische' Konstanten wie __File__ und 'superglobale' Variablen wie $_SERVER[], welche z.B. den Pfad und Filenamen zum Script beinhalten.

Konstanten stehen (anders als Variablen) überall im Script zur Verfügung. Somit kann ich auch innerhalb von Funktionen auch auf ausserhalb dieser definierten Konstanten zugreifen.

Eigene Konstante

define()

Zur Definition rufe ich die vorgegebene Funktion 'define' auf und übergebe dieser zwei Argumente durch ein Komma getrennt in die Klammer. Eine Konvention besagt, dass der NAME einer Konstanten immer versal zu schreiben ist:
define(KONSTANTEN_NAMEN, Wert);

<?php
 define
("ICH","Marcel Biefer");
 echo 
"Hallo ICH<br/>"// wie soll der Parser wissen, dass ich nicht einfach ICH schreiben will?
 
echo "Hallo ".ICH// durch den Verknüpfungsoperator
?>
Hallo ICH
Hallo Marcel Biefer

defined()

Ob eine Konstante vorhanden ist, finde ich mit defined() heraus.

 if (defined('KONSTANTE')) {
  debug();
 }

Magische Konstanten

Konstanten enthalten normalerweise immer das Selbe, die magischen auch, aber variabel in Abhängigkeit ihres Ortes. Zu erkennen sind sie durch 2 Unterstriche vor und nach dem versalen NAMEN. Es gibt:

__LINE__
Die aktuelle Zeilennummer einer Datei
__FILE__
Der vollständige Pfad- und Dateiname einer Datei. Wird diese Konstante innerhalb einer mit include() nachgeladenen Datei verwendet, wird der Name dieser eingebundenen Datei zurückgegeben.
__FUNCTION__
Der Namen der Funktion, wie dieser deklariert wurde (Beachtung der Groß- und Kleinschreibung)
__CLASS__
Der Namen der Klasse, wie dieser deklariert wurde (Beachtung der Groß- und Kleinschreibung)
__METHOD__
Der Name einer Klassenmethode wie er deklariert wurde (Beachtung der Groß- und Kleinschreibung). Hinzugefügt erst in PHP 5.

basename(__FILE__)

Dabei interessieren mich vor allem die magischen konstanten __FILE__ und __LINE__ . In einer Funktion zum Debuggen, finde ich so heraus, wo der Fehler aufgetaucht ist. Mehr über Logdatei schreiben.

<?php
echo ">>> <b>".__FILE__."</b> ist der Pfad zur Datei in welcher die magische Konstante __FILE__ steht.\n<br />";
echo 
">>> <b>".basename(__FILE__)."</b> ist durch die Funktion basename() nur der Name der Datei, in welcher __FILE__ steht.";
?>
>>> /home/bieferc/www/lehrling/php/konstante.php ist der Pfad zur Datei in welcher die magische Konstante steht.
>>> konstante.php ist durch die Funktion basename() nur der Name in welcher die magische Konstante steht.


Valid XHTML 1.0 Check den Code.

Funktion >> << Cookie
Ich bin hier: > PHP Lehrling >>> Konstante
 
HTML und XHTML | CSS | JavaScript und DHTML | PHP und MySQL | Andere Sprachen
Letzter Update: 06.10.2010