0Pricing
PHP Academy · Lektion

Variablenbereich: lokal und global

Verstehen Sie, wie PHP den Gültigkeitsbereich von Funktionen isoliert und wie Sie das Schlüsselwort global verwenden.

Variablenbereich: lokal und global 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.

Variablen-Sichtbarkeit in PHP

In PHP hat jede Variable einen Gültigkeitsbereich – den Codebereich, in dem sie zugänglich ist.

  • Außerhalb von Funktionen erstellte Variablen befinden sich im globalen Gültigkeitsbereich
  • Innerhalb von Funktionen erstellte Variablen befinden sich im lokalen Gültigkeitsbereich
  • PHP hat KEINEN Block-Gültigkeitsbereich (anders als C oder JavaScript)

Lokaler Gültigkeitsbereich

Variablen innerhalb einer Funktion sind lokal – sie verschwinden, wenn die Funktion zurückkehrt:

<?php
function compute(): void {
    $result = 42;  // local variable
    echo $result;  // 42
}

compute();
echo $result ?? 'undefined';  // undefined — $result is gone

Globale Variablen sind NICHT automatisch sichtbar

Anders als in vielen Sprachen können PHP-Funktionen globale Variablen standardmäßig nicht sehen – Sie müssen sie ausdrücklich importieren:

<?php
$message = 'Hello';

function printMessage(): void {
    echo $message ?? 'not visible';  // 'not visible'
    // $message from global scope is not accessible here
}

Das Schlüsselwort global

Verwenden Sie global $varName innerhalb einer Funktion, um auf eine globale Variable zuzugreifen:

<?php
$counter = 0;

function increment(): void {
    global $counter;
    $counter++;
}

increment();
increment();
echo $counter;  // 2

Superglobale Variable $GLOBALS

$GLOBALS ist ein Array, das alle globalen Variablen enthält – und ohne das Schlüsselwort global überall zugänglich ist:

<?php
$total = 100;

function addTax(): void {
    $GLOBALS['total'] *= 1.18;  // 18% tax
}

addTax();
echo $total;  // 118

Warum Sie global vermeiden sollten

Eine übermäßige Verwendung von global erzeugt versteckte Abhängigkeiten – Funktionen werden schwer test- und debuggbar. Übergeben Sie Werte stattdessen bevorzugt als Argumente:

<?php
// Bad
$db = new PDO(/* ... */);
function getUsers(): array {
    global $db;
    return $db->query('SELECT * FROM users')->fetchAll();
}

// Good
function getUsers(PDO $db): array {
    return $db->query('SELECT * FROM users')->fetchAll();
}

Statische Variablen

Eine static-Variable behält ihren Wert zwischen Funktionsaufrufen bei, bleibt aber lokal auf die Funktion beschränkt:

<?php
function callCount(): int {
    static $count = 0;
    return ++$count;
}

echo callCount();  // 1
echo callCount();  // 2
echo callCount();  // 3

Closures und Variablenübernahme

Closures (anonyme Funktionen) können äußere Variablen mit use übernehmen:

<?php
$prefix = 'Mr';

$greet = function(string $name) use ($prefix): string {
    return "$prefix. $name";
};

echo $greet('Smith');  // Mr. Smith

Übernahme per Referenz

Übernehmen Sie eine Variable per Referenz mit use (&$var), damit die Closure die äußere Variable ändern kann:

<?php
$total = 0;

$add = function(int $n) use (&$total): void {
    $total += $n;
};

$add(10);
$add(5);
echo $total;  // 15

Pfeilfunktionen

Pfeilfunktionen in PHP 7.4 (fn =>) übernehmen den äußeren Gültigkeitsbereich automatisch per Wert – use ist nicht erforderlich:

<?php
$multiplier = 3;
$nums = [1, 2, 3, 4];

$result = array_map(fn($n) => $n * $multiplier, $nums);

print_r($result);  // [3, 6, 9, 12]

Verschachtelte Funktionen

PHP erlaubt es, eine Funktion innerhalb einer anderen zu definieren. Die innere Funktion wird jedoch global zugänglich, sobald die äußere Funktion aufgerufen wurde:

<?php
function outer(): void {
    function inner(): void {
        echo 'inner called';
    }
}

// inner(); // Fatal: undefined before outer() is called
outer();
inner(); // works now

Kurze Überprüfung

Was bewirkt eine static-Variable innerhalb einer PHP-Funktion?

Zusammenfassung: Variablen-Sichtbarkeit

Wichtige Regeln für Gültigkeitsbereiche in PHP:

  • Funktionen haben ihren eigenen lokalen Gültigkeitsbereich
  • Globale Variablen müssen mit global importiert werden
  • Verwenden Sie $GLOBALS['name'] als Alternative
  • static-Variablen bleiben über Aufrufe innerhalb einer Funktion hinweg erhalten
  • Closures übernehmen äußere Variablen mit use
  • Pfeilfunktionen übernehmen Variablen automatisch per Wert

Häufig gestellte Fragen

Ist die Lektion „Variablenbereich: lokal und global“ kostenlos?

Ja — der vollständige Text von „Variablenbereich: lokal und global“ 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 „Variablenbereich: lokal und global“?

Verstehen Sie, wie PHP den Gültigkeitsbereich von Funktionen isoliert und wie Sie das Schlüsselwort global verwenden. 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 „Variablenbereich: lokal und global“?

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. Funktionen definieren und aufrufen
  2. Standard- und variadische Parameter
  3. Variablenbereich: lokal und global
  4. Anonyme Funktionen und Closures
← Zurück zu PHP Academy