Funktioner och scope

Variabler som definieras i en funktion syns enbart inuti funktionen. Det beror på omfattningen av variabelns synlighet, variabelns scope.

Låt oss se på ett exempel.

#Scope

Vi tar ett exempel där en variabel är definierad i det globala scopet, det vill säga utanför en funktion, och sedan har vi en variabel med samma namn som är definierad inuti en funktion.

// Here is the global scope, its not within a function
$sum = 7;

function sumValues($val1, $val2, $val3)
{
    // This is the functions scope
    $sum = $val1 + $val2 + $val3;
    return $sum;
}

echo $sum . "\n";                // 7
echo sumValues(40, 2, 0) . "\n"; // 42
echo $sum . "\n";                // 7

Vi har alltså variabeln $sum som är definierad i ett globalt scope, utanför alla funktioner, på yttersta filnivå.

Sedan finns en variabel med samma namn $sum som används inuti funktionen. Dessa båda krockar inte då de ligger i olika scope, de har olika synlighetsfält.

En variabel kan (normalt) bara läsas och skrivas till inom det synlighetsscope den finns.

#Läs mer

Om du vill kan du läsa mer om variabel och scope i manualen.

#Revision history

  • 2018-09-03: (A, mos) Första versionen.

Document source.