Термин область действия (scope) относится к тем разделам сценария, внутри которых возможен доступ к некоторой конкретной переменной, иначе говоря, область, из любого места
которой видна эта переменная. В РНР используются следующих шесть базовых правил определения области действия.
Встроенные суперглобальные переменные видны из любого места сценария.
Константы, как только они объявлены, всегда видимы глобально, т.е. могут использоваться как внутри, так и вне функций.
Глобальные переменные, объявленные в сценарии, видны в любом месте сценария, но не внутри функций.
Переменные, использованные внутри функций, которые объявлены как глобальные, ссылаются на глобальные переменные с теми же именами.
Переменные, созданные внутри функции и объявленные как статические, невидимы за пределами функции, однако они сохраняют свои значения между двумя вызовами этой функции.
Переменные, созданные внутри функции, являются локальными по отношению к своей функции и прекращают свое существование после завершения функции.
Массивы $_GET и $_POST и ряд других специальных переменных подчиняются своим собственным правилам, определяющим их области действия. Они принадлежат к категории суперглобальных (или автоглобалъных) переменных и видимы везде, как внутри функций, так и за их пределами.
Ниже представлен полный список суперглобальных переменных.
$GLOBALS. Массив всех глобальных переменных. Подобно ключевому слову global, этот массив позволяет получать доступ к глобальным переменным внутри функции, например,
$GLOBALS [ 'myvariable' ].
$_SERVER. Массив переменных среды сервера.
$_GET. Массив переменных, переданных в сценарий посредством метода GET.
$_POST. Массив переменных, переданных в сценарий посредством метода POST.
$_С00КIЕ. Массив cookie-переменных.
$_FILES. Массив переменных, относящихся к загрузке файлов.
$_ENV. Массив переменных окружения.
$_REQUEST. Массив пользовательского ввода, включая содержимое массивов $_GET, $_POST и $_С00КIЕ (начиная с РНР 4.3.0, сюда не входит $_FILES).
$_SESSI0N. Массив переменных сеанса.
Mы будем по мере необходимости обращаться к этим супер-глобальным типам данных.
Все переменные, которые мы используем, по умолчанию являются глобальными.