Advertisement
  1. Code
  2. PHP

Verstehen des Geltungsbereichs von Variablen in PHP

by
Read Time:8 minsLanguages:

German (Deutsch) translation by Ines Willenbrock (you can also view the original English article)

Variablen sind ein wichtiger Bestandteil jeder Programmiersprache. Sie können sie verwenden, um alle Arten von Informationen wie ganze Zahlen, Floats, Zeichenfolgen, Arrays, den Inhalt einer Datei usw. zu speichern. Die in Variablen gespeicherten Daten können dann durch Hinzufügen oder Entfernen von Informationen bearbeitet werden. Die Verwendung von Variablen ermöglicht es uns auch, Schleifen zu erstellen und einige Aufgaben wiederholt auszuführen. Sie können auch Funktionen definieren, die verschiedene Variablen als Argumente verwenden und neue Daten zurückgeben.

In diesem Tutorial erfahren wir mehr über ein wichtiges Konzept namens Geltungsbereich von Variablen, auch Variable Scope, und wie es sich auf die Art und Weise auswirkt, wie Sie Code in PHP schreiben. Wir behandeln auch die Verwendung der Schlüsselwörter global und static.

Was ist der Geltungsbereich von Variablen?

Variablen werden verwendet, um Informationen zu speichern und später darauf zuzugreifen oder sie zu manipulieren, aber Sie können nicht einfach von jedem beliebigen Ort aus auf ihre Daten zugreifen. Einige Variablen können an bestimmten Stellen unzugänglich werden, abhängig von der Programmiersprache, die Sie verwenden.

Vereinfacht gesagt bestimmt der Geltungsbereich einer Variablen ihre Verfügbarkeit in verschiedenen Abschnitten eines Programms.

Geltungsbereich von Variablen in PHP

PHP hat einen leicht verständlichen und einsteigerfreundlichen Ansatz für den Geltungsbereich von Variablen.

Grundsätzlich wird eine Variable, die Sie irgendwo in einer PHP-Datei definieren, fast überall sichtbar oder verfügbar sein, nachdem sie definiert wurde. Sie können sie auch in anderen Dateien verwenden, die dem Programm hinzugefügt wurden, indem Sie include() und require() verwenden.

Angenommen, es gibt eine Datei namens variables.php und sie enthält den folgenden Code:

Die Variable $apple_count ist auch in einer anderen Datei mit folgendem Code verfügbar:

Diese Variable ist jedoch innerhalb benutzerdefinierter Funktionen nicht verfügbar. Hier ist ein Beispiel:

Daher sind Variablen, die außerhalb einer benutzerdefinierten Funktion definiert sind, innerhalb der Funktion nicht verfügbar. Ebenso existieren Variablen, die innerhalb einer Funktion definiert sind, nur innerhalb dieser Funktion. Deshalb erhalten wir eine Benachrichtigung, wenn wir versuchen, den Wert von $mango_count außerhalb unserer fruit_count() Funktion wiederzugeben.

Zugriff auf Variablen innerhalb von Funktionen

Funktionen erfordern in der Regel einige Eingabedaten, um etwas Nützliches zu tun. Der beste Weg, dies zu tun, besteht darin, die Informationen mithilfe verschiedener Parameter in der Funktionsdefinition zu übergeben. Beispielsweise nimmt die unten stehende natural_sum() die Anzahl der natürlichen Zahlen als Parameter an.

Wenn Sie eine Variable von außen nehmen und innerhalb einer Funktion verwenden müssen, können Sie das Schlüsselwort global verwenden.

Verwenden des PHP-Schlüsselworts global um auf Variablen zuzugreifen

Sie können einfach das Schlüsselwort global vor einer beliebigen Variablen verwenden, um ihren Wert aus dem globalen Bereich zu erreichen. Wenn Sie dies tun, wird alles, was in der Variablen gespeichert ist, innerhalb der Funktion verfügbar sein, ohne sie als Parameter zu übergeben. Sie können auch den Wert der Variablen innerhalb der Funktion ändern, und die Änderungen werden überall widergespiegelt.

Hier ist ein Beispiel, das die natural_sum()-Funktion umschreibt, um einen globalen Wert von $n zu verwenden.

Einer der größten Nachteile, wenn wir Dinge auf diese Weise tun, ist, dass wir nicht mehr wissen, auf welche Art von Daten natural_sum() angewiesen ist, um ihre Ausgabe zu generieren. Der Wert von $n kann auch an beliebiger Stelle im Code geändert werden, und er wirkt sich erneut auf die Ausgabe des Aufrufens von natural_sum() aus.

Im obigen Beispiel haben wir keine Möglichkeit zu wissen, was die Ausgabe von natural_sum() verändert hat, ohne den Code zu betrachten. Wir können hier immer noch leicht herausfinden, dass der Wert von $n innerhalb der Funktion selbst um 5 erhöht wurde. Dies ist jedoch möglicherweise nicht so einfach, wenn Sie mit einer großen Menge an Code zu tun haben.

Deshalb ist es besser, globals zu vermeiden, wann immer das geht.

Verwenden des PHP-$GLOBALS Superglobals zum Zugriff auf Variablen

Eine andere Möglichkeit, auf globale Variablen innerhalb einer Funktion zuzugreifen, besteht darin, das $GLOBALS Superglobal zu verwenden. Auf diese Weise können Sie auch eine lokale Variable mit demselben Namen wie die globale Variable haben.

Die Probleme, die die Verwendung des Schlüsselworts global zu einer schlechten Praxis machen, gibt es auch für $GLOBALS.

Sie sollten die Verwendung globaler Variablen so weit wie möglich vermeiden und sie nur verwenden, wenn Sie sich keine andere Möglichkeit vorstellen können, die Daten von einer Variablen in Ihrer jeweiligen Funktion leicht zu erhalten.

Eine Situation, in der es hilfreich sein könnte, global zu verwenden, ist, wenn Sie den Wert einer Variablen über mehrere verschiedene Funktionsdefinitionen hinweg nachverfolgen und aktualisieren möchten und die Änderungen am Wert der Variablen überall widergespiegelt werden sollen.

Statische Variablen in PHP

Variablen, die innerhalb einer Funktion in PHP definiert sind, existieren nur im Rahmen dieser Funktion. Dies bedeutet, dass die Variable nicht mehr verfügbar ist, sobald wir den lokalen Bereich verlassen haben. Es bedeutet auch, dass jeder Wert, den wir einer Variablen innerhalb einer Funktion zuweisen, nicht über mehrere Aufrufe dieser Funktion beibehalten wird.

Wie Sie sehen können, rufen wir im obigen Beispiel dreimal natural_sum() auf, aber ihr Wert wird im oberen Bereich der Funktion bei jedem Aufruf wieder auf 0 zurückgesetzt. Dies macht es schwierig für uns, den Überblick darüber zu behalten, wie oft wir natural_sum() aufgerufen haben.

Eine Möglichkeit, diese Einschränkung zu umgehen, besteht darin, das static-Schlüsselwort zu verwenden. Nun bleibt der Wert von $count über mehrere Aufrufe hinweg erhalten, wie das folgende Beispiel zeigt.

Das obige Beispiel zeigt auch, dass das Deklarieren einer Variablen als statisch in PHP nicht außerhalb ihres Gültigkeitsbereichs verfügbar ist.

Wenn Sie auf den Wert einer Variablen außerhalb ihrer Funktion zugreifen möchten, verwenden Sie am besten eine return-Anweisung. Sie können jede Art von Wert wie Zeichenfolgen, Arrays, Objekte usw. zurückgeben.

Abschließende Gedanken

PHP hat zwei Arten von Bereichen für Variablen. Es gibt einen allgemeinen globalen Bereich, in dem Variablen, die Sie im Programm definieren, an allen Stellen verfügbar sind, wie Schleifen und andere Dateien, die die Datei mit den Variablen einbinden. Dann gibt es einen lokalen Bereich für benutzerdefinierte Funktionen, in dem die Variablen auf diese bestimmte Funktion beschränkt sind.

Dies verhindert jedoch nicht den freien Informationsverkehr innerhalb und außerhalb der Funktionen. Sie können mithilfe des Schlüsselworts global Zugriff auf externe Variablen erhalten, die nicht als Parameter in der Funktion enthalten sind. Ebenso können Sie mithilfe einer return-Anweisung auf den Wert einer Variablen zugreifen, die in einer Funktion definiert ist.

PHP lernen mit einem kostenlosen Online-Kurs

Wenn Sie PHP lernen möchten, schauen Sie sich unseren kostenlosen Online-Kurs zu PHP-Grundlagen an!

In diesem Kurs lernen Sie die Grundlagen der PHP-Programmierung. Sie beginnen mit den Grundlagen, lernen, wie PHP funktioniert und schreiben einfache PHP-Schleifen und -Funktionen. Anschließend bauen Sie Programmierklassen für eine einfache objektorientierte Programmierung (OOP) auf. Unterwegs lernen Sie alle wichtigen Fähigkeiten zum Schreiben von Apps für das Web: Sie können üben, auf GET- und POST-Anforderungen zu reagieren, JSON zu analysieren, Benutzer zu authentifizieren und eine MySQL-Datenbank zu verwenden.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.