Локальні змінні допустимі тільки всередині тіла **функції** або **методу** (в об'єктно-орієнтованому програмуванні).
Якщо ми працюємо в контексті звичайного сценарію, то все відбувається так, як і передбачалося:
$x = 5;echo $x; // виводить 5
Але коли ми визначаємо користувацьку функцію, поведінка дещо змінюється:
$x = 5;function mojeFunkce(): int{$x = 3;echo $x; // виводить 3}echo $x; // виводить 5
Причина в тому, що змінна $x існує тільки в контексті поточної функції або методу. Така поведінка є навмисною.
Якщо ми хочемо передати значення з оточуючого коду у функцію, ми повинні викликати її з необхідними параметрами:
echo mojeFunkce(5); // виводить 6function mojeFunkce(int $x): int{return $x + 1;}
Значення у функції вводяться за допомогою параметрів. Якщо потрібно передати у функцію додаткові змінні за межами параметрів, то можна використати глобальні змінні, але це не дуже гарна ідея.
Використання локальних змінних має величезне значення при програмуванні великих додатків. Якби ми не розрізняли валідність змінних у різних контекстах, було б неможливо гарантувати, що змінна не буде перевизначена там, де ми на неї не розраховуємо (саме тому глобальні змінні є злом).
$x = 5;$y = 3;function soucet(int $x, int $y): int{return $x + $y;}echo $x; // виводить 5echo soucet($x, $y); // виводить 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: ... | uk