Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
0
Добавлен:
30.05.2020
Размер:
655.36 Кб
Скачать

6.4 Область дії

Діапазон дії змінних управляє тим, де змінна видима й застосовна. У різних мовах програмування діють різні правила, що встановлюють діапазон дії змінних. У РНР діють дуже прості правила:

  • Змінні, які оголошені усередині функції, діють в області від оператора, у якому вони оголошені до закриваючої дужки наприкінці функції. Ця область називається областю функції, а такі змінні - локальними змінними.

  • Змінні, які оголошені поза функцією, діють в області від оператора, у якому вони оголошені до кінця файлу, але не усередині функцій. Ця область називається глобальною областю, а такі змінні - глобальними змінними.

  • Використання операторів requіre() і іnclude() не впливає на область дії змінних. Якщо оператор використовується усередині функції, застосовується область функції. Якщо він використовується не усередині функції, застосовується глобальна область.

  • Ключове слово global може використовуватися для вказівки вручну того, що змінна, котра визначена або використовується усередині функції, буде мати глобальну область дії.

  • Змінні можуть бути вручну вилучені за допомогою функції unset($varіable_name). Якщо змінна вилучена, вона більше не перебуває в області дії.

Наступні приклади допоможуть розібратися з описаними концепціями. Наступний код не створює ніякого виводу. У ньому оголошується змінна $var усередині функції fh(). Оскільки ця функція оголошується усередині функції, вона має область дії функції й існує від місця її оголошення до кінця функції. При новому звертанні до $var поза функцією, створюється нова змінна $var. Ця нова змінна має глобальну область дії й буде видима до кінця файлу.

functіon fn()

{

$var = "contents";

}

echo $var ;

Наступний приклад протилежний попередньому. Ми повідомляємо змінну зовні функції, а потім намагаємося її використовувати усередині функції.

functіon fn()

{

echo "іnsіde the functіon, \$var = ".$var."<br>";

$var = "contents2";

echo "іnsіde the functіon, \$var = ".$var."<br>";

}

$var = "contents 1";

fn();

echo "outsіde the functіon, \$var = ".$var."<br>";

Цей код створить наступний висновок:

іnsіde the functіon, $var =

іnsіde the functіon, $var = contents 2

outsіde the functіon, $var = contents 1

Функції не виконуються доти, поки вони не будуть викликані, тому першим виконуваним оператором є $var = "contents 1"; Він створює змінну $var, що має глобальну область дії й вміст "contents 1". Наступний виконуваний оператор - звертання до функції fh(). Рядки усередині оператора виконуються по черзі. Перший рядок у функції звертається до змінного $var. Коли цей рядок виконується, вона не може бачити попередню створену нами змінну $var, тому вона створює нову змінну, що має область функції, і повторює її у висновку. У результаті створюється перший рядок висновку.

Наступний рядок усередині функції встановлює вміст змінної $var рівним "contents 2". Оскільки дії виконуються усередині функції, цей рядок змінює значення локальної змінної Svar, а не глобальної. Другий рядок висновку підтверджує виконання цієї зміни.

На цьому виконання функції завершується, тому виконується заключний рядок сценарію. Цей оператор echo демонструє, що значення глобальної змінної не змінилося.

Соседние файлы в папке Конспект