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 ); ?>