global
Das Schlüsselwort „global" wird in PHP verwendet, um auf eine außerhalb der aktuellen Funktion oder Klasse deklarierte Variable zuzugreifen.
Das PHP-Schlüsselwort „global": Ein umfassender Leitfaden
In PHP haben Variablen einen begrenzten Gültigkeitsbereich — eine Variable, die innerhalb einer Funktion erstellt wird, ist lokal für diese Funktion und kann keine im Hauptskript definierten Variablen sehen, und umgekehrt. Das Schlüsselwort global überbrückt diese Lücke: Es weist eine Funktion an, dieselbe Variable zu verwenden, die im globalen (Skript-Level-)Bereich lebt, anstatt eine neue lokale Variable zu erstellen.
Diese Seite behandelt die Syntax von global, wie der Variablen-Gültigkeitsbereich funktioniert, die Beziehung zwischen global und dem Superglobal $GLOBALS, praktische Beispiele, häufige Fallstricke und wann Sie eine sauberere Alternative bevorzugen sollten.
Den Variablen-Gültigkeitsbereich verstehen
Standardmäßig ist eine außerhalb einer Funktion definierte Variable nicht innerhalb der Funktion sichtbar:
<?php
$message = "Hello";
function show() {
echo $message; // Notice: Undefined variable $message
}
show();Die Funktion show() hat keinen Zugriff auf $message, weil $message im globalen Bereich lebt und show() seinen eigenen, separaten lokalen Bereich hat. Das Schlüsselwort global ist eine Möglichkeit, der Funktion Zugriff auf diese äußere Variable zu gewähren.
Syntax
Das Schlüsselwort „global" wird in PHP verwendet, um auf eine globale Variable zuzugreifen. Hier ist die grundlegende Syntax für die Verwendung des Schlüsselworts „global":
Die PHP-Syntax von global
<?php
$variableName = "initial value";
function functionName() {
global $variableName;
// code to be executed
}In diesem Beispiel wird das Schlüsselwort global verwendet, um auf eine Variable namens $variableName zuzugreifen, die außerhalb der aktuellen Funktion deklariert ist. Sobald sie als global deklariert ist, wird jede Änderung, die die Funktion an $variableName vornimmt, im äußeren Bereich widergespiegelt, und jede außerhalb vorgenommene Änderung ist innerhalb der Funktion sichtbar.
Sie können auch mehrere globale Variablen auf einmal importieren, indem Sie sie durch Kommas trennen:
<?php
$x = 5;
$y = 10;
function addThem() {
global $x, $y;
echo $x + $y; // Output: 15
}
addThem();Beispiele
Schauen wir uns einige praktische Beispiele an, wie das Schlüsselwort „global" verwendet werden kann:
Beispiele für PHP global
<?php
// Example 1
$counter = 0;
function incrementCounter()
{
global $counter;
$counter++;
}
incrementCounter();
echo $counter . PHP_EOL; // Output: 1
// Example 2
$color = "red";
function changeColor()
{
global $color;
$color = "blue";
}
changeColor();
echo $color; // Output: blueIn diesen Beispielen verwenden wir das Schlüsselwort global, um auf außerhalb der aktuellen Funktion deklarierte Variablen zuzugreifen und deren Werte zu ändern.
global vs. das $GLOBALS-Array
PHP stellt jede globale Variable auch über das Superglobal $GLOBALS zur Verfügung — ein assoziatives Array, das nach Variablenname indexiert ist. Im Gegensatz zu global ist $GLOBALS in jedem Bereich ohne Deklaration verfügbar, sodass die folgenden zwei Funktionen gleichwertig sind:
<?php
$total = 100;
function withGlobal() {
global $total;
$total += 1;
}
function withGlobals() {
$GLOBALS['total'] += 1;
}
withGlobal();
withGlobals();
echo $total; // Output: 102$GLOBALS ist praktisch, wenn Sie nur eine oder zwei äußere Variablen benötigen, da es eine separate global-Deklarationszeile vermeidet. Beide Ansätze lesen aus denselben zugrunde liegenden Variablen und schreiben in diese.
Häufige Fallstricke
globalfunktioniert nur für Variablen, die bereits existieren oder die Sie im globalen Bereich erstellen möchten. Ein Tippfehler im Variablennamen erstellt still und leise eine andere globale Variable, anstatt einen Fehler auszulösen.- Es muss vor der Verwendung der Variable stehen. Deklarieren Sie
global $name;am Anfang der Funktion, vor jeder Referenz auf$name. globalhat keine Auswirkung auf Konstanten oderstatic-Variablen — es ist ausschließlich für gewöhnliche Variablen im globalen Bereich.- Versteckte Abhängigkeiten. Eine Funktion, die auf
globalangewiesen ist, kann sich je nach Skriptzustand unterschiedlich verhalten, was das isolierte Testen erschwert.
Vorteile
Die Verwendung des Schlüsselworts „global" hat mehrere Vorteile, darunter:
- Zugriff auf globale Variablen: Das Schlüsselwort „global" ermöglicht den Zugriff auf und die Änderung von Variablen, die außerhalb der aktuellen Funktion oder Klasse deklariert sind.
- Hinweis zur Wartbarkeit: Obwohl
globaldirekten Zugriff auf Variablen im äußeren Bereich bietet, kann übermäßiger Einsatz den Code schwerer debugbar und testbar machen. Die moderne PHP-Entwicklung bevorzugt oft die Übergabe von Variablen als Funktionsparameter, die Verwendung von Dependency Injection oder den Zugriff auf das Superglobal-Array$GLOBALS, wenn nötig.
Fazit
Zusammenfassend lässt sich sagen, dass das Schlüsselwort „global" PHP-Entwicklern den Zugriff auf Variablen ermöglicht, die außerhalb der aktuellen Funktion oder Klasse deklariert sind. Obwohl es für schnelle Skripte oder Legacy-Code nützlich sein kann, empfehlen moderne PHP-Best-Practices, dessen Verwendung zu begrenzen, um enge Kopplung und Wartbarkeitsprobleme zu vermeiden. Für eine bessere Architektur sollten Sie in Betracht ziehen, Variablen als Parameter zu übergeben, Dependency Injection zu verwenden oder das Superglobal-Array $GLOBALS zu nutzen.
Um tiefer einzutauchen, lesen Sie über den PHP-Variablen-Gültigkeitsbereich, das static-Schlüsselwort für Variablen, die zwischen Aufrufen erhalten bleiben, und PHP-Variablen im Allgemeinen.