0Pricing
PHP Academy · Lektion

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 ausgegeben
  • require – bindet die Datei ein; bei einer fehlenden Datei tritt ein schwerwiegender Fehler auf
  • include_once – bindet die Datei nur ein, wenn sie noch nicht eingebunden wurde
  • require_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 files

Variablen-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 arrays

Ein 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 autoloader

Sicherheit: 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.php

Schnelltest

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 Dateien
  • include – 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 return Werte 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

  1. PHP-Tags und Syntax zum Einbetten
  2. Dynamisches HTML mit PHP-Schleifen
  3. Dateien einbinden und anfordern
  4. Template-Muster: Logik und Darstellung trennen
← Zurück zu PHP Academy