PHP Суперглобальні змінні
Суперглобальні змінні - Суперглобальні змінні - це вбудовані змінні, які завжди доступні у всіх областях видимості
Деякі визначені змінні PHP є "суперглобальними", що означає, що вони доступні в будь-якому місці скрипта. Немає необхідності використовувати синтаксисglobal $variable; для доступу до них у функціях та методах.
Примітки
Зауваження :Доступність змінних
За замовчуванням усі суперглобальні змінні доступні завжди, проте існують налаштування, які можуть впливати на це. За подальшою інформацією зверніться до опису директиви variables_order.
Примітка :Робота з register_globals
За додатковою інформацією звертайтеся до FAO під назвою "Як register_globals стосуються мене?"
Примітка :Змінні змінних
Суперглобальні змінні не можуть бути використані як змінні змінні всередині функцій та методів.
Дивіться також
User Contributed Notes 5 notes
Since PHP 5.4, ви не можете використовувати superglobal як параметр для функції. Це спричиняє fatal error:
function foo($_GET) // whatever >
Це називається "шодування" superglobal, і я не знаю, де люди ніби ні, але я бачу, що там. Досить fix is just to rename the variable $get in the function, assuming that name is unique.
Там не було скидання варіювання, яке було визначено в попередніх версіях PHP, згідно з моїм тестуванням, інакше в 5.3 або 5.2. Проблема повідомлення в 5.4 є: Порушення error: Cannot re-assign auto-global variable _GET in. Fatal error: Cannot re-assign auto-global variable _COOKIE in. etc.
For those wondering ifregister_globals також робить глобальні змінні доступними всередині функцій - це не так.
Запуск цього коду на веб-сервері PHP52 із увімкненим register_globals, використовуючи url: http://localhost?hello=campers
Тібор: Не варто використовувати $_ENV, якщо ви не вказуєте змінну середовища. Це, мабуть, кращий приклад, який я знайшов на іншій сторінці php.net
Хочете знати, як створити відформатований список із усіма глобальними значеннями (включаючи спеціальні)? Перегляньте код нижче.
'john' , 'USERID' => '18068416846' );
// Перелічіть тут глобальні значення, які ви хочете надрукувати // Це можуть бути ваші власні глобальні значення $globals = array( '$_SERVER' => $_SERVER , '$_ENV' => $_ENV , '$_REQUEST' => $_REQUEST , '$_GET' => $_GET , '$_POST' => $_POST , '$_COOKIE' => $_COOKIE , '$_FILES' => $_FILES , '$_CUSTOM' => $_CUSTOM ); ?>