Avatar ·

Worin unterscheiden sich require, include, require_once und include_once in PHP?

Hallo zusammen! Ich habe gerade erst angefangen, PHP zu lernen, und komme mit dem Einbinden von Dateien nicht klar. In Lehrbüchern und Foren stoße ich ständig auf vier Konstrukte: require, include, require_once und include_once. Auf den ersten Blick tun sie dasselbe – sie fügen Code aus einer anderen Datei ein – aber ich habe das Gefühl, dass es wichtige Unterschiede zwischen ihnen gibt.

Hier ist ein Beispiel meines Codes. Ich habe eine Datei config.php mit Datenbankeinstellungen:

<?php
$host = 'localhost';
$user = 'root';
$pass = 'password';
?>

Und die Hauptdatei index.php, in der ich versuche, sie einzubinden:

<?php
include 'config.php';
echo $host; // Funktioniert
?>

Aber wenn ich include durch require ersetze, scheint es auch zu funktionieren. Was ist der Unterschied? Und wann sollte ich _once-Versionen verwenden? Ich möchte meinen Code richtig schreiben und häufige Fehler vermeiden.