Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung der Verwendungstechniken von include() in PHP

Detaillierte Erläuterung der Verwendungstechniken von include() in PHP

黄舟
黄舟Original
2017-06-25 11:05:313990Durchsuche

Die Anweisung


include() schließt die angegebene Datei ein und führt sie aus.

Die folgende Dokumentation gilt auch für require(). Die beiden Strukturen sind bis auf die Art und Weise, wie sie mit Fehlern umgehen, identisch. include() erzeugt eine Warnung und require() verursacht einen schwerwiegenden Fehler. Mit anderen Worten: Verwenden Sie require(), wenn Sie die Verarbeitung der Seite stoppen möchten, wenn eine fehlende Datei gefunden wird. Dies ist bei include() nicht der Fall und das Skript wird weiterhin ausgeführt. Stellen Sie außerdem sicher, dass der entsprechende include_path festgelegt ist.

Wenn eine Datei eingebunden wird, erbt der darin enthaltene Code den Variablenbereich der Include-Zeile. Von diesem Zeitpunkt an sind alle Variablen, die in der aufrufenden Datei in dieser Zeile verfügbar sind, auch in der aufgerufenen Datei verfügbar.

Einfaches include()-Beispiel

vars.php
<?php
$color = &#39;green&#39;;
$fruit = &#39;apple&#39;;
?>
test.php
<?php
echo "A $color $fruit"; // A
include &#39;vars.php&#39;;
echo "A $color $fruit"; // A green apple
?>

Wenn include in einer Funktion in einer aufrufenden Datei vorkommt, verhält sich der gesamte in der aufgerufenen Datei enthaltene Code so, als ob er mit dem in dieser Funktion definierten identisch wäre . Es folgt also dem Variablenbereich dieser Funktion.

Einbindung in Funktionen

<?php
function foo()
{
   global $color;
   include &#39;vars.php&#39;;
   echo "A $color $fruit";
}
/* vars.php is in the scope of foo() so    *
 * $fruit is NOT available outside of this  *
 * scope.  $color is because we declared it *
 * as global.                              */
foo();                    // A green apple
echo "A $color $fruit";  // A green
?>


Wenn eine Datei eingebunden wird, verlässt der Parser den PHP-Modus und wechselt am Anfang der Zieldatei in den HTML-Modus. bis zum Ende der Datei wiederherstellen. Aus diesem Grund muss jeder Code in einer Objektdatei, der als PHP-Code ausgeführt werden soll, in gültigen PHP-Start- und End-Tags enthalten sein.

Wenn „URL-Fopen-Wrapper“ in PHP aktiviert sind (Standardkonfiguration), können Sie URLs (über HTTP oder andere unterstützte Wrapping-Protokolle – unterstützte Protokolle siehe Anhang L) anstelle lokaler Dateien verwenden. Wenn der Zielserver die Zieldatei als PHP-Code interpretiert, können Sie mithilfe der URL-Anfrage string für HTTP GET Variablen an die eingebundene Datei übergeben. Streng genommen ist dies nicht dasselbe wie das Einschließen einer Datei und das Erben des Variablenbereichs der übergeordneten Datei. Die Skriptdatei wird tatsächlich auf dem Remote-Server ausgeführt und das lokale Skript enthält die Ergebnisse.

WARNUNG

Windows-Versionen von PHP vor Version 4.3.0 unterstützen keinen Remote-Dateizugriff für diese Funktion, selbst wenn die Optionallow_url_fopen aktiviert ist.

include() über HTTP

<?php
/* This example assumes that www.example.com is configured to parse .php *
 * files and not .txt files. Also, &#39;Works&#39; here means that the variables *
 * $foo and $bar are available within the included file.                */
// Won&#39;t work; file.txt wasn&#39;t handled by www.example.com as PHP
include &#39;http://www.example.com/file.txt?foo=1&bar=2&#39;;
// Won&#39;t work; looks for a file named &#39;file.php?foo=1&bar=2&#39; on the
// local filesystem.
include &#39;file.php?foo=1&bar=2&#39;;
// Works.
include &#39;http://www.example.com/file.php?foo=1&bar=2&#39;;
$foo = 1;
$bar = 2;
include &#39;file.txt&#39;;  // Works.
include &#39;file.php&#39;;  // Works.
?>

Informationen finden Sie unter Verwenden von Remote-Dateien, fopen() und file().

Da include() und require() spezielle Sprachstrukturen sind, müssen sie bei Verwendung in bedingten Anweisungen in einer Anweisungsgruppe (in geschweiften Klammern) platziert werden.

include() und bedingte Anweisungsgruppe

<?php
// This is WRONG and will not work as desired.
if ($condition)
   include $file;
else
   include $other;
// This is CORRECT.
if ($condition) {
   include $file;
} else {
   include $other;
}
?>


Umgang mit Rückgabewerten: Sie können die return()-Anweisung in der eingebundenen Datei verwenden, um die zu beenden Führen Sie das Programm in der Datei aus und geben Sie das Skript zurück, das es aufgerufen hat. Es ist auch möglich, Werte aus eingebundenen Dateien zurückzugeben. Der Rückgabewert des Include-Aufrufs kann wie bei einer normalen Funktion ermittelt werden.

Hinweis: In PHP 3 kann return nicht in eingebundenen Dateien erscheinen, es sei denn, es wird in einer Funktion aufgerufen. In diesem Fall wirkt return() auf die Funktion und nicht auf die gesamte Datei.

include()- und return()-Anweisungen

return.php
<?php
$var = &#39;PHP&#39;;
return $var;
?>
noreturn.php
<?php
$var = &#39;PHP&#39;;
?>
testreturns.php
<?php
$foo = include &#39;return.php&#39;;
echo $foo; // prints &#39;PHP&#39;
$bar = include &#39;noreturn.php&#39;;
echo $bar; // prints 1
?>


Der Wert von $bar ist 1, da include erfolgreich ausgeführt wurde. Beachten Sie den Unterschied im obigen Beispiel. Der erste verwendet return() in der eingebundenen Datei, der andere nicht. Mehrere andere Möglichkeiten, eine Datei in eine Variable einzubinden, sind die Verwendung von fopen(), file() oder include() in Verbindung mit einer Ausgabesteuerungsfunktion.

Hinweis: Da es sich hierbei um eine Sprachstruktur und nicht um eine Funktion handelt, kann sie nicht von „Variablenfunktionen“ aufgerufen werden.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Verwendungstechniken von include() in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn