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