Локальні та глобальні

Матеріал з Вікі ЦДПУ
Перейти до: навігація, пошук

Variable scope

Англійський термін, винесений в заголовок перекладається на український як “область видимості змінної”. Під цим терміном мається на увазі те, що будь-яка змінна, описана в програмі має свою зону видимості, іншими словами якщо змінна описана в якомусь місці програми, то це зовсім не означає, що вона автоматично стає видимою в будь-якому іншому місці цієї програми. В PHP із цього приводу є свої особливості. “Найдивніша” річ, з якою стикається людина при знайомстві з PHP це те, що змінна, описана поза функцією невидима всередині неї! У інших мовах програмування ми звикли до того, що глобальні змінні програми видно скрізь, але в PHP це не так. Але поглянувши на це “дивацтво” уважніше можна відмітити, що вона має більше вигоди, ніж незручностей, оскільки є свого роду “захисним механізмом”, який не дозволить вам випадково переплутати локальну і глобальну змінну, що часом приводить до дуже тяжких наслідків. Як же дістати доступ до глобальних змінних з функції?

Є 2 способи зробити це:

1. Використовувати суперглобальний асоціативний масив $GLOBALS. Це єдина змінна в PHP, яка видима звідусіль і яка містить в собі всі глобальні змінні, наявні в програмі. Якщо ви усередині функції звертаєтеся до змінної $variable – то це ви звертаєтеся до локальної змінної, а якщо $GLOBALS[’variable’] - то до глобальної.

function myfunction() { $variable = 5; // Присвоюємо значення локальної змінної
$GLOBALS[variable] = 10; // Присвоюємо значення глобальної змінної };

2. Використовувати ключове слово global. Воно дозволить вам задати список глобальних змінних, які будуть видимі всередині функції:

 function myfunction() {
global $variable; // Присвоюємо значение глобальній змінній
$variable = 10;
};













Перейти до Змінні та типи данних в PHP