PHP Область дії змінних
PHP Область дії змінних
У PHP змінні можна оголошувати будь-де в скрипті.
Область дії змінної – це частина скрипту, де можна посилатися на змінну/використовувати її.
PHP має три різні області дії змінних:
- локальна
- глобальна
- статична
Глобальна та локальна область дії
Змінна, оголошена за межами функції, має ГЛОБАЛЬНУ ОБЛАСТЬ ДІЇ, і до неї можна отримати доступ лише поза функцією:
Приклад
Змінна з глобальною областю дії:
<?php
$x = 5; // глобальна область дії
function myTest() {
// використання x в цій функції призведе до помилки
echo "<p>Змінна x всередині функції: $x</p>";
}
myTest();
echo "<p>Змінна x поза функцією: $x</p>";
?>
Спробуйте самі »
Змінна, оголошена в межах функції, має ЛОКАЛЬНУ ОБЛАСТЬ ДІЇ, і до неї можна отримати доступ лише в межах цієї функції:
Приклад
Змінна з локальною областю дії:
<?php
function myTest() {
$x = 5; // локальна область дії
echo "<p>Змінна x всередині функції: $x</p>";
}
myTest();
// використання x поза функцією призведе до помилки
echo "<p>Змінна x поза функцією: $x</p>";
?>
Спробуйте самі »
Ви можете мати локальні змінні з однаковими іменами в різних функціях, оскільки локальні змінні розпізнаються лише функцією, в якій вони оголошені.
PHP Ключове слово global
Ключове слово global використовується для доступу до глобальної змінної з функції.
Для цього використовуйте ключове слово global перед змінними (всередині функції):
Приклад
<?php
$x = 5;
$y = 10;
function myTest() {
global $x, $y;
$y = $x + $y;
}
myTest();
echo $y; // виведе 15
?>
Спробуйте самі »
PHP також зберігає всі глобальні змінні в масиві під назвою $GLOBALS[index]. index зберігає назву змінної. Цей масив також доступний із функцій і може використовуватися для безпосереднього оновлення глобальних змінних.
Наведений вище приклад можна переписати так:
Приклад
<?php
$x = 5;
$y = 10;
function myTest() {
$GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
}
myTest();
echo $y; // виведе 15
?>
Спробуйте самі »
PHP Ключове слово static
Зазвичай, коли функція завершується/виконується, усі її змінні видаляються. Однак іноді ми хочемо, щоб локальна змінна НЕ була видалена. Це нам потрібно для подальшої роботи.
Для цього використовуйте ключове слово static, коли ви вперше оголошуєте змінну:
Приклад
<?php
function myTest() {
static $x = 0;
echo $x;
$x++;
}
myTest();
myTest();
myTest();
?>
Спробуйте самі »
Тоді під час кожного виклику функції ця змінна матиме інформацію, яку вона містила з моменту останнього виклику функції.
Примітка: змінна все ще локальна для функції.

