include in PhpSie befinden sich: Home > Php > include in Php
Die grundlegende Aufgabe eines include(); in PHP lässt sich als das Einbinden
von Quellcode beschreiben. Beim Aufruf dieser Funktion geschieht nichts anderes,
als das der im Funktionsaufruf angeführte Dateiname, bzw. deren Inhalt in die
aufrufende Ursprungsdatei eingebunden wird.
Das klingt zunächst ungewöhnlich da der Quellcode der includierten Datei
theoretisch auch neu geschrieben werden könnte, erleichter aber die Arbeit, wenn
zum Beispiel ein anderes Script den Inhalt der Datei sessionspezifisch ändert.
Dies kann vorkommen wenn man für unterschiedliche User unterschiedliche PHP -
Scripts verwenden möchte oder sogar muss.
Eine andere Anwendungart ist dann von nutzen, wenn komplette fremde
Dateisegmente verwendet werden sollen, die ggf. direkt von einem Server geholt
werden sollen. Durch die include(); Funktion ist es möglich große Projekte in
Module zu unterteilen, die dann von verschiedenen Personen zeitgleich bearbeitet
werden können, und denen lediglich die Schnittstellen der Module bekannt sein
müssen, nicht jedoch der komplette Quellcode.
Inhalt von der Datei vars.php
1 <?php
2 $farbe = "grün";
3 $frucht = "apfel";
4 ?>
|
Inhalt von der Datei test.php
1 <?php
2 echo "Ein $farbe $frucht"; // Ausgabe "Ein"
3
4 // Bildlich gesprochen steht jetzt
5 // an dieser Stelle der Inhalt der Datei vars.php
6
7 include "vars.php";
8 echo "Ein $farbe $frucht"; // Ausgabe "Ein grüner Apfel"
9 ?>
|
Es ist extrem wichtig die Einstellungen des sogenannten "Include Pfades" zu
kennen, da PHP zunächst die Datei, welche wie im ersten Beispiel angegeben, im
include(); angegeben ist, im Arbeitsverzeichnes des Scriptes suchen wird, danach
erst im PHP - Heimverzeichnis.
PHP erlaubt es innerhab der Funktion include(); Pfade sowie IP Adressen
anzugeben. Wichtig ist das der Pfad local dann immer vom Stammverzeichnis aus
ausgehend angegeben werden sollte. Ein weiterer wichtiger Punkt der überprüft
werden muss, besteht in der Tatsache das bei einem Parser Fehler in der
includierten Datei das aufrufende Script keinen Fehler ausgeben wird, und auch
nicht abgebrochen wird, selbst wenn es ein sogenannter FATAL_ERROR ist.
Noch wichtiger ist die Deklaration der in der includierten Datei verwendeten
Variablen. Folgendes Beispiel verdeutlicht dies im Zusammenhang mit der
Deklaration einer Funktion.
1 <?php
2 function eins(){
3 global $farbe;
4 include "vars.php";
5 echo "Ein $farbe $frucht";
6 }
7 /* vars.php wird innerhalb der Funktion eins aufgerufen *
8 * $frucht ist definitiv nicht außerhalb von eins verfügbar *
9 * $farbe hingegen ist global verfügbar, da sie explizit als *
10 * "global" deklariert wurde */
11
12 foo(); // Ausgabe "Ein grüner Apfel"
13 echo "Ein $farbe $frucht"; // Ausgabe "Ein grüner "
14 ?>
|
Diese Beispiel soll nicht dazu verleiten prinzipiell alle Variblen, egal ob
innerhalb eines include(); oder nicht, allgemein als "global" zu definieren,
soll aber zeigen das hier Fehler lauern können die extrem schwer zu finden sind,
da der Fehler selber in einer vollkommen anderen Datei zu suchen ist, und nicht
zum Abbruch des Scriptes führen wird.
Um dieses Problem zu umgehen, kann man die fast equivalente Funktion
require(); verwenden, die sowohl bei einem Parser-, wie auch FATAL - Error das
Script beendet, und eine Fehlermeldung generiert, und diese
ausgibt.
weiter Was ist ein Array?
|