Dateien und Variablen einbinden mit PHP include und require

    Logo der Programmiersprache PHP
    Avatarbild von Patrick
    Patrick

    veröffentlicht am: 10.05.2020
    zuletzt aktualisiert am: 07.02.2023

    PHP include & PHP require: So bindest du Dateien in PHP ein!

    Oft müssen wir Code aus anderen Quellen einbinden oder unsere Skripte in mehrere Dateien unterteilen, um die Übersicht zu behalten.
    Zu diesem Zweck stellt uns PHP diverse Optionen zur Verfügung, von denen ich dir nun PHP include, require, include_once und require_once vorstellen werde.

    Dateien und Variablen einbinden mit PHP include und require

    Sowohl include als auch require sind geeignet, um Dateien einzubinden. Im folgenden Beispiel wird die Datei include_test.php mit beiden Funktionen eingebunden.

    include('include_test.php');
    // test
    require('include_test.php');
    // test
    <?php
    	echo 'test'.'<br>';
    ?>

    So kannst du auch Variablen aus anderen PHP-Dateien einbinden.

    include('include_var.php');
    echo $string;
    // Hello world
    require('include_var.php');
    echo $string;
    // Hello world
    <?php
    	$string = 'Hello world';
    ?>

    Was ist der Unterschied zwischen PHP include und PHP require?

    Der wesentliche Unterschied zwischen include und require ist das Verhalten, wenn keine Datei gefunden wird.
    Bei include wird eine Warnung ausgegeben und das Skript weiter ausgeführt. Der Rückgabewert ist dabei false.

    var_dump(include('keine_datei.php'));
    // Warning: include(keine_datei.php): failed to open stream: ...
    // Warning: include(): Failed opening 'keine_datei.php' for
    // inclusion (include_path='C:\xampp\php\PEAR') in …
    // bool(false)
    
    echo 'test';
    // test

    require gibt eine Fehlermeldung zurück und bricht die Ausführung des Skriptes ab.

    var_dump(require('keine_datei.php'));
    // Warning: require(keine_datei.php): failed to open stream: ...
    // Fatal error: require(): Failed opening required 'keine_datei.php'
    // (include_path='C:\xampp\php\PEAR') in ...
    
    echo 'test';

    Dennoch können auch mit include Fehler auftreten. Wenn du versuchst, eine Datei mit einem Funktionsnamen, der bereits existiert, einzubinden, erhältst du eine Fehlermeldung und die Ausführung des Skriptes wird unterbrochen.

    <?php
    	function test(){}
    ?>
    include('include_function.php');
    include('include_function.php');
    // Fatal error: Cannot redeclare test() (previously declared in C:\...\include_function.php:2) in C:\...\include_function.php on line 2

    PHP require_once und include_once

    require_once und include_once verhalten sich sehr ähnlich wie require und include.
    Der Hauptunterschied hier ist, dass die Dateien, die bereits von einer anderen Funktion geladen wurden, nicht nochmals laden.
    Dadurch können wir Fehlermeldungen durch doppelte Funktionsnamen vermeiden.

    var_dump(require_once('include_function.php'));
    // int(1)
    
    var_dump(include_once('include_function.php'));
    // bool(true)

    Fazit

    Mit require können wir zwingend notwendige Dateien für unser Skript einbinden.
    include ist besser für optionale Dateien geeignet, da die Skriptausführung durch das Fehlen einer Datei nicht abgebrochen wird.
    include_once und require_once kannst du verwenden, wenn eine Datei höchstens einmal eingebunden werden soll.

    Wenn du Fragen, Anmerkungen, Anregungen, Lob oder Kritik hast, schreibe bitte einen Kommentar.

    😩 Gelangweilt von den Udemy & YouTube-Tutorials?!

    Lerne spielerisch Python, Java & SQL und komme deiner gutbezahlten (und an der 🌴 liegenden) Traumkarriere einen Schritt weiter.

    TP Star TP Star TP Star TP Star TP Star

    "Für Leute die gerne Python oder Java lernen wollen ist Codegree klasse. Ist nicht wie bei anderen Konkurrenten auf Videokursen aufgebaut..."

    - Lennart Sparbier

    100% kostenlos registrieren · keine Kreditkarte notwendig

    👋 Wir warten bereits auf dich!

    Lerne das, was du wirklich brauchst.

    Im Gegensatz zu der Abendschule oder der alteingesessenen Uni lernst du bei codegree die Sprachen & Pakete, die wirklich im Jobmarkt gesucht werden.

    Logo von Python
    Logo von PyTorch
    Logo von Pandas
    Logo von Matplotlib
    Logo von Java
    Logo von NumPy
    Mehr erfahren

    100% kostenlos registrieren · keine Zahlungsdaten notwendig