Zmienne lokalne w PHP

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:

php
$x = 5;
echo $x; // drukuje 5

Jeśli jednak zdefiniujemy funkcję niestandardową, zachowanie to nieco się zmienia:

php
$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:

php
echo mojeFunkce(5); // drukuje 6
function 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).

php
$x = 5;
$y = 3;
function soucet(int $x, int $y): int
{
return $x + $y;
}
echo $x; // drukuje 5
echo soucet($x, $y); // drukuje 8

Newsletter

Nejlepsi tipy a triky o PHP do Vaseho e-mailu. Clanky a novinky nejen ze sveta PHP a programovani.