Dateien einbinden und anfordern
Teilen Sie Seiten mit include und require in wiederverwendbare Bestandteile auf.
Dateien einbinden und anfordern ist eine kostenlose PHP Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des PHP Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der PHP Academy-Kurs umfasst insgesamt 4 Lektionen.
Code-Wiederverwendung durch Dateieinbindung
PHP stellt vier Anweisungen bereit, um Code aus anderen Dateien einzubinden:
include– bindet die Datei ein; bei einer fehlenden Datei wird eine Warnung ausgegebenrequire– bindet die Datei ein; bei einer fehlenden Datei tritt ein schwerwiegender Fehler aufinclude_once– bindet die Datei nur ein, wenn sie noch nicht eingebunden wurderequire_once– fordert die Datei nur an, wenn sie noch nicht eingebunden wurde
include und require
Der entscheidende Unterschied: Eine fehlende require-Datei verursacht einen schwerwiegenden Fehler, eine fehlende include-Datei gibt lediglich eine Warnung aus:
<?php
// Fatal error if missing — use for critical files
require 'config.php';
require 'database.php';
// Warning if missing, but execution continues
include 'optional_plugin.php';
// Use __DIR__ for reliable relative paths:
require __DIR__ . '/helpers/utils.php';include_once und require_once
Die _once-Varianten verhindern, dass dieselbe Datei mehrfach eingebunden wird:
<?php
// Without _once: including twice redefines functions
include 'functions.php';
include 'functions.php'; // Fatal: function redefined!
// With _once: second include is a no-op
require_once 'functions.php';
require_once 'functions.php'; // safe — skipped
// Rule: use require_once for class and function definition filesVariablen-Sichtbarkeit in eingebundenen Dateien
Eingebundene Dateien teilen sich den Gültigkeitsbereich der einbindenden Datei – jedoch nicht den Gültigkeitsbereich einer Funktion:
<?php
// main.php
$title = 'My Site';
require 'header.php'; // header.php can use $title
// But in a function:
function loadTemplate(): void {
require 'header.php'; // $title is NOT accessible here!
// Must pass data explicitly
}Werte aus eingebundenen Dateien zurückgeben
Eingebundene Dateien können mit der return-Anweisung Werte zurückgeben:
<?php
// config.php content:
// return ['debug' => true, 'db_host' => 'localhost'];
// main.php:
$config = require 'config.php';
echo $config['db_host']; // localhost
// Common pattern for configuration files that return arraysEin einfaches Layout erstellen
Teilen Sie eine Seite in wiederverwendbare Dateien für Header, Inhalt und Footer auf:
<?php
// index.php
$pageTitle = 'Home Page';
$bodyClass = 'home';
require_once 'partials/header.php';
?>
<main class="container">
<h1>Welcome!</h1>
<p>Main content goes here.</p>
</main>
<?php require_once 'partials/footer.php'; ?>Template-Partials
Erstellen Sie wiederverwendbare Partial-View-Dateien für wiederholt verwendete Komponenten:
<?php
// partials/card.php
// Expects: $card['title'], $card['body'], $card['url']
?>
<div class="card">
<h3><a href="<?= htmlspecialchars($card['url']) ?>">
<?= htmlspecialchars($card['title']) ?>
</a></h3>
<p><?= htmlspecialchars($card['body']) ?></p>
</div>Variablen an Partials übergeben
Übergeben Sie Daten an ein Partial, indem Sie vor dem Einbinden lokale Variablen zuweisen:
<?php
$articles = getArticles();
foreach ($articles as $article) {
$card = [
'title' => $article['title'],
'body' => substr($article['body'], 0, 100) . '...',
'url' => '/articles/' . $article['slug'],
];
require 'partials/card.php';
}include und Autoloading
In modernem PHP mit Composer werden Klassendateien automatisch geladen – Sie müssen sie nicht manuell einbinden:
<?php
// Old way (manual includes):
require 'classes/User.php';
require 'classes/Post.php';
// Modern way (Composer autoloading):
require __DIR__ . '/vendor/autoload.php';
// Classes are loaded automatically when first used
$user = new User(); // User.php loaded by autoloader
$post = new Post(); // Post.php loaded by autoloaderSicherheit: Pfad-Traversal verhindern
Binden Sie niemals Dateien auf Grundlage nicht validierter Nutzereingaben ein:
<?php
// DANGEROUS:
$page = $_GET['page'];
include $page . '.php'; // allows ../../etc/passwd
// SAFE: whitelist allowed pages
$allowed = ['home', 'about', 'contact'];
$page = $_GET['page'] ?? 'home';
if (!in_array($page, $allowed)) {
$page = 'home';
}
include __DIR__ . '/pages/' . $page . '.php';include_path-Konfiguration
Konfigurieren Sie den include_path von PHP, damit Sie Dateien ohne vollständige Pfade einbinden können:
<?php
// Current include_path:
echo get_include_path();
// Add your library directory:
set_include_path(
get_include_path() . PATH_SEPARATOR . '/var/www/lib'
);
// Now you can include without full path:
include 'helpers.php'; // found in /var/www/lib/helpers.phpSchnelltest
Was ist der Unterschied zwischen include und require, wenn die Datei fehlt?
Zusammenfassung: Dateien einbinden
Zusammenfassung:
require– schwerwiegender Fehler bei fehlender Datei; für wichtige Dateieninclude– Warnung bei fehlender Datei; für optionale Dateien- Die _once-Varianten verhindern das doppelte Laden
- Eingebundene Dateien teilen sich den Variablen-Gültigkeitsbereich des Aufrufers
- Dateien können mit
returnWerte zurückgeben - Binden Sie niemals Pfade aus Nutzereingaben ein – verwenden Sie ausschließlich eine Whitelist
Häufig gestellte Fragen
Ist die Lektion „Dateien einbinden und anfordern“ kostenlos?
Ja — der vollständige Text von „Dateien einbinden und anfordern“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des PHP Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der PHP Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Dateien einbinden und anfordern“?
Teilen Sie Seiten mit include und require in wiederverwendbare Bestandteile auf. Du übst PHP Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um PHP Academy zu starten?
Keine Vorkenntnisse erforderlich. PHP Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „Dateien einbinden und anfordern“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser PHP Academy-Lektion Code schreiben und ausführen?
Ja. Jede PHP Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- PHP-Tags und Syntax zum Einbetten
- Dynamisches HTML mit PHP-Schleifen
- Dateien einbinden und anfordern
- Template-Muster: Logik und Darstellung trennen