PHP Variabler-Lokala-Globala-Superglobala
Lokala variabler lever bara inuti en funktion
I en funktion använder vi variabler för att lösa det vi vill utföra. Dessa hjälpvariabler lever enbart inuti funktionen, dvs de är lokala variabler. Så fort funktionen är klar släpps kontakten med de lokala variablerna tal1, tal2 och summa.
function summering ($tal1, $tal2) {
$summa = $tal1+$tal2;
return $summa;
}
$svar=summering(3.2, 4);
echo $svar;
?>
Globala variabler lever i hela programmet (UTOM i funktionerna)
Variabler som skapats i programmet(skriptet), utanför funktioner, är globala variabler.
Observera att variabeln summa som ligger i programmet men utanför funktionen är en ANNAN variabel, den är global, se exempel nedan.
Det är två olika variabler. Det visar sig att man kan ha en lokal variabel inuti en funktionsdeklaration som har samma namn som en global variabel utanför funktionen utan att de två variablernas värden blandas ihop.
function summering ($tal1, $tal2) {
$summa = $summa+$tal1+$tal2;
return $summa;
}
$summa = 99;
$svar=summering(3.2,4);
echo $svar."<br>";
echo $summa;
?>
99
Hur kan man med hjälp av en funktion ändra flera variabler utanför funktionen?
JO MED REFERENSER.
function changeAll (&$x, &$y, &$z) {
$x=111;
$y=222;
$z=333;
}
$tal1 = 4;
$tal2 = 5;
$tal3 = 6;
echo "$tal1 $tal2 $tal3";
changeAll ($tal1, $tal2, $tal3)
echo "$tal1 $tal2 $tal3";
?>
111 222 333
Nödlösning - Globala variabler som lever i hela programmet (ÄVEN i funktionerna)
Vid denna nödlösning så använder vi det det reserverade ordet "global" som styr om egenskaperna på vår variabel. Undvik att använda "global".
function summeringX ($tal1, $tal2) {
$summaX = $summaX+$tal1+$tal2;
return $summaX;
}
global $summaX = 99;
$svarX=summeringX(3.2,4);
echo $svarX."<br>";
echo $summaX;
?>
99
Superglobala variabler lever i hela programmet (ÄVEN i funktionerna)
PHP har några superglobala variabler som finns tillgängliga överallt, såväl ute i huvudskriptet som inne i funktionerna. Exempel på sådana variabler är vektorerna $_GET[], $_POST[], $_REQUEST[], $_COOKIE[] och $_SESSION[] som gör medskickade data från klienten och även variabler från servermiljön tillgängliga överallt hela PHP-skriptet.