Zmienne lokalne są ważne tylko wewnątrz ciała **funkcji** lub **metody** (w programowaniu obiektowym).
Jeśli pracujemy w kontekście zwykłego skryptu, wszystko przebiega zgodnie z oczekiwaniami:
$x = 5;echo $x; // drukuje 5
Jeśli jednak zdefiniujemy funkcję niestandardową, zachowanie to nieco się zmienia:
$x = 5;function mojeFunkce(): int{$x = 3;echo $x; // drukuje 3}echo $x; // drukuje 5
Wynika to z faktu, że zmienna $x istnieje tylko w kontekście bieżącej funkcji lub metody. Takie zachowanie jest celowe.
Jeśli chcemy przekazać wartość z otaczającego kodu do funkcji, musimy ją wywołać z odpowiednimi parametrami:
echo mojeFunkce(5); // drukuje 6function mojeFunkce(int $x): int{return $x + 1;}
Wartości są wprowadzane do funkcji za pomocą parametrów. Jeśli chcesz przekazać do funkcji dodatkowe zmienne poza parametrami, możesz użyć zmiennych globalnych, ale nie jest to dobry pomysł.
Używanie zmiennych lokalnych robi ogromną różnicę podczas programowania większych aplikacji. Gdybyśmy nie rozróżniali ważności zmiennych w różnych kontekstach, nie dałoby się zagwarantować, że zmienna nie zostanie nadpisana w miejscu, w którym na nią nie liczymy (dlatego zmienne globalne są złe).
$x = 5;$y = 3;function soucet(int $x, int $y): int{return $x + $y;}echo $x; // drukuje 5echo soucet($x, $y); // drukuje 8
Jan Barášek Více o autorovi
Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.
Rád vám pomůžu:
Články píše Jan Barášek © 2009-2024 | Kontakt | Mapa webu
Status | Aktualizováno: ... | pl