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();
?>
Спробуйте самі »
Тоді під час кожного виклику функції ця змінна матиме інформацію, яку вона містила з моменту останнього виклику функції.
Примітка: змінна все ще локальна для функції.