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 goneGlobale 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; // 2Superglobale 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; // 118Warum 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(); // 3Closures 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; // 15Pfeilfunktionen
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 nowKurze Ü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
globalimportiert 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
- Funktionen definieren und aufrufen
- Standard- und variadische Parameter
- Variablenbereich: lokal und global
- Anonyme Funktionen und Closures