<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/language.control-structures.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'de',
  ),
  'this' => 
  array (
    0 => 'function.include.php',
    1 => 'include',
    2 => 'include',
  ),
  'up' => 
  array (
    0 => 'language.control-structures.php',
    1 => 'Kontrollstrukturen',
  ),
  'prev' => 
  array (
    0 => 'function.require.php',
    1 => 'require',
  ),
  'next' => 
  array (
    0 => 'function.require-once.php',
    1 => 'require_once',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'de',
    'path' => 'language/control-structures/include.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.include" class="sect1">
 <h2 class="title">include</h2>
 <p class="verinfo">(PHP 4, PHP 5, PHP 7, PHP 8)</p>
 <p class="simpara">
  Der Ausdruck <code class="literal">include</code> bindet die angegebene Datei ein und
  wertet sie aus.
 </p>
 <p class="simpara">
  Die folgende Dokumentation trifft auch auf <span class="function"><a href="function.require.php" class="function">require</a></span> zu.
 </p>
 <p class="simpara">
  Dateien werden unter dem angegebenen Pfad gesucht oder, wenn keiner
  gegeben ist, im <a href="ini.core.php#ini.include-path" class="link">include_path</a>. Wenn
  die Datei auch im <a href="ini.core.php#ini.include-path" class="link">include_path</a> nicht
  gefunden werden kann, sucht <code class="literal">include</code> noch im Verzeichnis
  der aufrufenden Datei und im aktuellen Arbeitsverzeichnis. Wenn keine Datei
  gefunden wurde, erzeugt <code class="literal">include</code> einen Fehler der Stufe
  <strong><code><a href="errorfunc.constants.php#constant.e-warning">E_WARNING</a></code></strong>; im Gegensatz dazu erzeugt
  <span class="function"><a href="function.require.php" class="function">require</a></span> in diesem Fall einen Fehler der Stufe
  <strong><code><a href="errorfunc.constants.php#constant.e-error">E_ERROR</a></code></strong>.
 </p>
 <p class="simpara">
  Beachten Sie, dass sowohl <code class="literal">include</code> als auch
  <code class="literal">require</code> zusätzliche <strong><code><a href="errorfunc.constants.php#constant.e-warning">E_WARNING</a></code></strong>s
  auslösen, wenn nicht auf die Datei zugegriffen werden kann, bevor sie das
  endgültige <strong><code><a href="errorfunc.constants.php#constant.e-warning">E_WARNING</a></code></strong> bzw. <strong><code><a href="errorfunc.constants.php#constant.e-error">E_ERROR</a></code></strong>
  auslösen.
 </p>
 <p class="simpara">
  Wenn ein Pfad angegeben ist — ob absolut (beginnend mit einem
  Laufwerksbuchstaben oder <code class="literal">\</code> auf Windows oder
  <code class="literal">/</code> auf Unix/Linux) oder relativ (beginnend mit
  <code class="literal">.</code> oder <code class="literal">..</code>), wird der
  <a href="ini.core.php#ini.include-path" class="link">include_path</a> ignoriert. Wenn der
  Dateiname beispielsweise mit <code class="literal">../</code> beginnt, sucht der
  Parser im übergeordneten Verzeichnis des aktuellen Arbeitsverzeichnisses
  nach der Datei.
 </p>
 <p class="simpara">
  Mehr Informationen über den Umgang PHPs mit dem Einbinden von Dateien
  im Zusammenhang mit dem Include-Pfad, siehe die Dokumentation zu
  <a href="ini.core.php#ini.include-path" class="link">include_path</a>.
 </p>
 <p class="simpara">
  Wenn eine Datei eingebunden wird, wird für den enthaltenen Code der
  <a href="language.variables.scope.php" class="link">Geltungsbereich für Variablen</a>
  übernommen, der in der Zeile mit dem include-Befehl gilt. Alle Variablen,
  die in dieser Zeile in der aufrufenden Datei verfügbar sind, stehen ab
  diesem Zeitpunkt auch in der aufgerufenen Datei zur Verfügung. Hingegen
  haben alle Funktionen und Klassen, die in der eingebundenen Datei definiert
  sind, den globalen Geltungsbereich.
 </p>
 <p class="para">
  <div class="example" id="example-1">
   <p><strong>Beispiel #1 Grundlegendes <code class="literal">include</code>-Beispiel</strong></p>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000">vars.php<br /><span style="color: #0000BB">&lt;?php<br /><br />$farbe </span><span style="color: #007700">= </span><span style="color: #DD0000">'grün'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$frucht </span><span style="color: #007700">= </span><span style="color: #DD0000">'Apfel'</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">?&gt;<br /></span><br />test.php<br /><span style="color: #0000BB">&lt;?php<br /><br /></span><span style="color: #007700">echo </span><span style="color: #DD0000">"Der </span><span style="color: #0000BB">$frucht</span><span style="color: #DD0000"> ist </span><span style="color: #0000BB">$farbe</span><span style="color: #DD0000">."</span><span style="color: #007700">; </span><span style="color: #FF8000">// Der  ist  .<br /><br /></span><span style="color: #007700">include </span><span style="color: #DD0000">'vars.php'</span><span style="color: #007700">;<br /><br />echo </span><span style="color: #DD0000">"Der </span><span style="color: #0000BB">$frucht</span><span style="color: #DD0000"> ist </span><span style="color: #0000BB">$farbe</span><span style="color: #DD0000">"</span><span style="color: #007700">; </span><span style="color: #FF8000">// Der Apfel ist grün<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
 </p>
 <p class="simpara">
  Wenn include innerhalb einer Funktion aufgerufen wird, verhält sich der
  gesamte Code aus der aufgerufenen Datei wie wenn er in der Funktion stünde.
  Folglich hat er denselben Variablen-Gültigkeitsbereich wie diese Funktion.
  Eine Ausnahme von dieser Regel sind
  <a href="language.constants.magic.php" class="link">magische Konstanten</a>,
  die geparst werden, bevor die Einbindung durchgeführt wird.
 </p>
 <p class="para">
  <div class="example" id="example-2">
   <p><strong>Beispiel #2 Include in Funktionen</strong></p>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br /></span><span style="color: #007700">function </span><span style="color: #0000BB">foo</span><span style="color: #007700">()<br />{<br />    global </span><span style="color: #0000BB">$farbe</span><span style="color: #007700">;<br /><br />    include </span><span style="color: #DD0000">'vars.php'</span><span style="color: #007700">;<br /><br />    echo </span><span style="color: #DD0000">"Der </span><span style="color: #0000BB">$frucht</span><span style="color: #DD0000"> ist </span><span style="color: #0000BB">$farbe</span><span style="color: #DD0000">."</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #FF8000">/* vars.php ist im Gültigkeitsbereich von foo(),  *<br /> * sodass $frucht außerhalb von diesem Bereich    *<br /> * nicht verfügbar ist. $farbe ist auch außerhalb *<br /> * verfügbar, weil es als global deklariert ist.  */<br /><br /></span><span style="color: #0000BB">foo</span><span style="color: #007700">();                            </span><span style="color: #FF8000">// Der Apfel ist grün.<br /></span><span style="color: #007700">echo </span><span style="color: #DD0000">"Der </span><span style="color: #0000BB">$frucht</span><span style="color: #DD0000"> ist </span><span style="color: #0000BB">$farbe</span><span style="color: #DD0000">."</span><span style="color: #007700">;   </span><span style="color: #FF8000">// Der  ist grün.<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
 </p>
 <p class="simpara">
  Wenn eine Datei eingebunden wird, wechselt der Parser am Anfang der
  eingebundenen Datei in den HTML-Modus und am Ende wieder in den PHP-Modus.
  Aus diesem Grund muss jeder PHP-Code in der eingebundenen Datei mit
  <a href="language.basic-syntax.phpmode.php" class="link">gültigen PHP-Start- und -Endtags</a>
  umschlossen sein.
 </p>
 <p class="simpara">
  Wenn &quot;<a href="filesystem.configuration.php#ini.allow-url-include" class="link">include-URL-Wrapper</a>&quot;
  aktiviert sind (was sie in der Standard-Konfiguration sind), kann die
  einzubindende Datei mit einer URL (über HTTP oder ein anderes unterstütztes
  Protokoll - siehe <a href="wrappers.php" class="xref">Unterst&uuml;tzte Protokolle und Wrapper</a> für eine Liste unterstützter
  Protokolle) anstatt eines lokalen Pfades eingebunden werden. Wenn der
  Zielserver die Zieldatei als PHP-Code interpretiert, können Variablen
  an die einzubindende Datei mithilfe von HTTP-GET-Query-Strings übergeben
  werden, obwohl dies nicht dasselbe ist, wie wenn man die Datei einbindet
  und sie den Variablenbereich übernimmt; das Skript läuft weiterhin auf dem
  entfernten Server und das Ergebnis wird in das lokale Skript eingebunden.
 </p>
 <p class="para">
  <div class="example" id="example-3">
   <p><strong>Beispiel #3 <code class="literal">include</code> über HTTP</strong></p>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br /></span><span style="color: #FF8000">/* Dieses Beispiel setzt voraus, dass www.example.com konfiguriert ist, *<br /> * .php-Dateien als PHP-Skripte zu interpretieren und .txt-Dateien      *<br /> * nicht. Des Weiteren meint 'Funktioniert' hier, dass die Variablen    *<br /> * $foo und $bar innerhalb der eingebundenen Datei verfügbar sind.      */<br /><br />// Funktioniert nicht; file.txt wird von www.example.com nicht als PHP interpretiert<br /></span><span style="color: #007700">include </span><span style="color: #DD0000">'http://www.example.com/file.txt?foo=1&amp;bar=2'</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">// Funktioniert nicht; hier wird nach einer Datei mit dem Namen<br />// 'file.php?foo=1&amp;bar=2' im lokalen Dateisystem gesucht.<br /></span><span style="color: #007700">include </span><span style="color: #DD0000">'file.php?foo=1&amp;bar=2'</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">// Funktioniert<br /></span><span style="color: #007700">include </span><span style="color: #DD0000">'http://www.example.com/file.php?foo=1&amp;bar=2'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
 </p>
 <div class="warning"><strong class="warning">Warnung</strong>
  <h1 class="title">Sicherheits-Warnung</h1>
  <p class="para">
   Die entfernte Datei mag vom entfernten Server (je nach Konfiguration)
   geparst werden oder nicht, aber sie muss weiterhin ein gültiges PHP-Skript
   ausgeben, weil die Ausgabe auf dem lokalen Server als PHP ausgeführt wird.
   Wenn die Datei vom entfernten Server dort verarbeitet und lokal nur
   ausgegeben werden soll, ist <span class="function"><a href="function.readfile.php" class="function">readfile()</a></span> die bessere Wahl.
   Andernfalls muss sehr gut darauf Acht gegeben werden, sicherzustellen, dass
   das entfernte Skript gültigen und erwünschten Code ausgibt!
  </p>
 </div>
 <p class="para">
  Siehe auch  <a href="features.remote-files.php" class="link">Entfernte Dateien</a>,
  <span class="function"><a href="function.fopen.php" class="function">fopen()</a></span> und <span class="function"><a href="function.file.php" class="function">file()</a></span> für verwandte
  Informationen.
 </p>
 <p class="simpara">
  Umgang mit Rückgabewerten: <code class="literal">include</code> gibt im Fehlerfall
  <code class="literal">FALSE</code> zurück und und generiert eine Warnung.
  Erfolgreiches Einbinden, außer überschrieben durch die eingebundene Datei,
  gibt <code class="literal">1</code> zurück. Es ist möglich, in der eingebundenen Datei
  <span class="function"><a href="function.return.php" class="function">return</a></span> aufzurufen um den Ablauf dieser Datei
  abzubrechen und zu dem einbindenden Skript zurückzukehren. Der
  zurückgegebene Wert kann als Rückgabewert des include-Aufrufs abgefragt
  werden, wie bei einer normalen Funktion. Dies ist beim Einbinden
  entfernter Dateien nur möglich, wenn die entfernte Datei mit
  <a href="language.basic-syntax.phpmode.php" class="link">gültigen PHP Start- und Endtags</a>
  umschlossen ist (wie bei jeder lokalen Datei). Die benötigten Variablen
  können innerhalb dieser Tags deklariert werden und sie werden an dem Punkt,
  an dem die Datei eingebunden wird, verfügbar.
 </p>
 <p class="para">
  Weil <code class="literal">include</code> eine spezielles Sprachkonstrukt ist,
  sind die Klammern um das Argument optional. Beim Vergleichen des
  Rückgabewerts muss allerdings aufgepasst werden (siehe Beispiel).
  <div class="example" id="example-4">
   <p><strong>Beispiel #4 Vergleichen des Rückgabewerts von include</strong></p>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">// funktioniert nicht, wird als include(('vars.php') == TRUE) behandelt<br />// also als include('1')<br /></span><span style="color: #007700">if (include(</span><span style="color: #DD0000">'vars.php'</span><span style="color: #007700">) == </span><span style="color: #0000BB">TRUE</span><span style="color: #007700">) {<br />    echo </span><span style="color: #DD0000">'OK'</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #FF8000">// funktioniert<br /></span><span style="color: #007700">if ((include </span><span style="color: #DD0000">'vars.php'</span><span style="color: #007700">) == </span><span style="color: #0000BB">TRUE</span><span style="color: #007700">) {<br />    echo </span><span style="color: #DD0000">'OK'</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
 </p>
 <p class="para">
  <div class="example" id="example-5">
   <p><strong>Beispiel #5 <code class="literal">include</code> und <span class="function"><a href="function.return.php" class="function">return</a></span></strong></p>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000">return.php<br /><span style="color: #0000BB">&lt;?php<br /><br />$var </span><span style="color: #007700">= </span><span style="color: #DD0000">'PHP'</span><span style="color: #007700">;<br /><br />return </span><span style="color: #0000BB">$var</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">?&gt;<br /></span><br />noreturn.php<br /><span style="color: #0000BB">&lt;?php<br /><br />$var </span><span style="color: #007700">= </span><span style="color: #DD0000">'PHP'</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">?&gt;<br /></span><br />testreturns.php<br /><span style="color: #0000BB">&lt;?php<br /><br />$foo </span><span style="color: #007700">= include </span><span style="color: #DD0000">'return.php'</span><span style="color: #007700">;<br /><br />echo </span><span style="color: #0000BB">$foo</span><span style="color: #007700">; </span><span style="color: #FF8000">// gibt 'PHP' aus<br /><br /></span><span style="color: #0000BB">$bar </span><span style="color: #007700">= include </span><span style="color: #DD0000">'noreturn.php'</span><span style="color: #007700">;<br /><br />echo </span><span style="color: #0000BB">$bar</span><span style="color: #007700">; </span><span style="color: #FF8000">// gibt 1 aus<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
 </p>
 <p class="simpara">
  <code class="literal">$bar</code> hat den Wert <code class="literal">1</code>, weil das Einbinden
  erfolgreich war. Man beachte den Unterschied zwischen den obigen Beispielen:
  Die erste Datei nutzt <span class="function"><a href="function.return.php" class="function">return</a></span>, was die andere nicht tut.
  Wenn das Einbinden fehlschlägt, wird <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> zurückgegeben und ein Fehler der
  Kategorie <strong><code><a href="errorfunc.constants.php#constant.e-warning">E_WARNING</a></code></strong> erzeugt.
 </p>
 <p class="para">
  Wenn in der eingebundenen Datei Funktionen definiert werden, können sie in
  der einbindenden Datei genutzt werden, unabhängig davon, ob sie vor oder
  nach <span class="function"><a href="function.return.php" class="function">return</a></span> definiert werden. Wenn eine Datei zweimal
  eingebunden wird, erzeugt PHP einen fatalen Fehler, weil Funktionen bereits
  definiert wurden. Es wird empfohlen, <span class="function"><a href="function.include-once.php" class="function">include_once</a></span> zu
  nutzen, anstatt zu überprüfen, ob die Datei bereits eingebunden wurde, und
  abhängig davon innerhalb der eingebundenen Datei zu handeln.
 </p>
 <p class="simpara">
  Ein anderer Weg, die Ausgabe eines eingebundenen Skriptes in eine Variable
  zu schreiben, ist, <code class="literal">include</code> mit den
  <a href="ref.outcontrol.php" class="link">Funktionen zur Steuerung des Ausgabepuffers</a>
  zu verwenden. Beispiel:
 </p>
 <p class="para">
  <div class="example" id="example-6">
   <p><strong>Beispiel #6 Nutzung des Ausgabepuffers um eine Datei in einen String aufzunehmen</strong></p>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$string </span><span style="color: #007700">= </span><span style="color: #0000BB">get_include_contents</span><span style="color: #007700">(</span><span style="color: #DD0000">'somefile.php'</span><span style="color: #007700">);<br /><br />function </span><span style="color: #0000BB">get_include_contents</span><span style="color: #007700">(</span><span style="color: #0000BB">$filename</span><span style="color: #007700">) {<br />    if (</span><span style="color: #0000BB">is_file</span><span style="color: #007700">(</span><span style="color: #0000BB">$filename</span><span style="color: #007700">)) {<br />        </span><span style="color: #0000BB">ob_start</span><span style="color: #007700">();<br />        include </span><span style="color: #0000BB">$filename</span><span style="color: #007700">;<br />        return </span><span style="color: #0000BB">ob_get_clean</span><span style="color: #007700">();<br />    }<br />    return </span><span style="color: #0000BB">false</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
 </p>
 <p class="para">
  Um automatisch Dateien in Skripte einzubinden, siehe auch die
  Konfigurationsdirektiven
  <a href="ini.core.php#ini.auto-prepend-file" class="link">auto_prepend_file</a> und
  <a href="ini.core.php#ini.auto-append-file" class="link">auto_append_file</a> in der
  <var class="filename">php.ini</var>.
 </p>

 <blockquote class="note"><p><strong class="note">Hinweis</strong>: <span class="simpara">Da dies ein Sprachkonstrukt
und keine Funktion ist, können Sie dieses nicht mit
<a href="functions.variable-functions.php" class="link">Variablenfunktionen</a> oder
<a href="functions.arguments.php#functions.named-arguments" class="link">benannten Parametern</a> verwenden.
</span></p></blockquote>

 <p class="simpara">
  Siehe auch <span class="function"><a href="function.require.php" class="function">require</a></span>, <span class="function"><a href="function.require-once.php" class="function">require_once</a></span>,
  <span class="function"><a href="function.include-once.php" class="function">include_once</a></span>, <span class="function"><a href="function.get-included-files.php" class="function">get_included_files()</a></span>,
  <span class="function"><a href="function.readfile.php" class="function">readfile()</a></span>, <span class="function"><a href="function.virtual.php" class="function">virtual()</a></span>, und
  <a href="ini.core.php#ini.include-path" class="link">include_path</a>.
 </p>
</div><?php manual_footer($setup); ?>