Scope


Sinn und Zweck

Wer nicht weiß, was ein Scope einer Variable ist, der kann einmal hier nachschauen. Kurz zusammengefasst bezeichnet ein Scope einer Variable den Bereich, wo sie gültig und definiert ist.
In PHP gibt es auch Gültigkeitsbereich von Variablen. Allerdings gilt für globale Variablen eine andere Regel als in C.

Beispiel 1


<?php
$MyGlobalVariable = "hallo";

function fnTest(){
    print $MyGlobalVariable;
}

?>

In obigem Beispiel ist die Variable $MyGlobalVariable zwar global definiert, aber innerhalb der Funktion fnTest hat sie keinen Wert. Das heißt die print Anweisung wird nichts ausgeben.


Beispiel 2


<?php
$MyGlobalVariable = "hallo";

function fnTest(){
    print $GLOBALS['MyGlobalVariable'];
}

?>

Die print Anweisung wird hier "hallo" ausgeben. Warum ist dies so? Dies liegt daran, dass man innerhabl von Funktionen auf globale Variablen nur mit dem $GLOBALS Array zugreifen kann. Dasselbe gilt für das Verändern von globalen Variablen.

$GLOBALS Array

Mit Hilfe dieses standardmäßig vorhandenen Arrays kann man auf die globalen Variablen auch innerhalb einer Funktion zugreifen.
Wichtig ist dabei, dass der Variablenname ohne $ Zeichen als Schlüssel in dem Array verwendet wird (siehe auch Beispiel 2)

Zusammenfassung

In PHP gibt es lokalen und globale Variablen. Die globalen Variablen sind aber innerhalb einer Funktion immer leer, d.h. man kann nicht auf globale Variablen zugreifen.
Mit Hilfe des autoglobalen Arrays $GLOBALS['$varName'] kann man jedoch auf die globalen Variablen zugreifen.

Infoblätter und Arbeitsblätter

noch keine verfügbar