wtorek,
Funkcje – zasięg zmiennych
Domyślnie zmienne wykorzystywane w funkcjach mają zasięg lokalny. Aby lepiej to zrozumieć, warto przeanalizować poniższy przykład.
<?php
function iloczyn( $a, $b) {
$a = $a * $b;
return $a;
}
$a = 3;
echo iloczyn($a,3); // 9
echo $a; // 3
?>
Zadeklarowano i zainicjowano zmienną $a (wiersz 8), a następnie przekazano ją jako argument do funkcji iloczyn(). W ciele funkcji jawnie przypisuje się zmiennej $a wartość iloczynu (wiersz 4). Wartość zwracana przez funkcję jest zgodna z oczekiwaniem (wiersz 9). Dlaczego w takim razie w wierszu dziesiątym wyświetla się pierwotna wartość zmiennej?
W języku PHP lokalne zmienne funkcji nie wpływają na wartość zmiennych poza nią, nawet jeśli nazwy są takie same. Jest to zachowanie domyślne, które można zmienić, co przedstawimy w kolejnym materiale. Takie zachowanie występuje w wielu językach programowania.