Объявление и использование переменных
Мы знаем, что значение, хранящееся в переменной, можно изменить. Наряду с этим, в РНР допускается объявление констант. Как и переменная, константа хранит значение, но ее значение устанавливается раз и навсегда, и не может изменяться ни в какой части сценария.
В нашем приложении цены всех товаров, выставленных на продажу, можно сохранить в виде констант. Такие константы можно определить с помощью функции define
:
define ('FILTRPRICE', 20);
define ('FILTRVPRICE', 10);
define ('SPARKPRICE', 4);
Добавьте эти строки в сценарий. Теперь мы имеем три константы, которые можно использовать при расчете общей суммы заказа.
Имена констант записаны прописными буквами. Благодаря этому различать переменные и константы легче. Соблюдать это правило вовсе не обязательно, но следует помнить, что оно существенно упрощает чтение и сопровождение кода.
Важное различие между константами и переменными состоит в том, что при обращении к константе перед ней не нужно ставить знак ($
) доллара. Если вам необходимо воспользоваться значением константы, указывайте только ее имя. Например, для вывода на экран значения одной из созданных выше констант применяется следующий код:
echo FILTRPRICE;
Наряду с константами, определенными пользователем, РНР устанавливает большое количество собственных констант. Эти константы легко просмотреть, если вызвать функцию phpinfo()
.
Упомянутая функция выводит на экран список предопределенных переменных и констант РНР, а также другую полезную информацию.
Область действия переменных
Термин область действия относится к тем разделам сценария, внутри которых возможен доступ к некоторой конкретной переменной, иначе говоря, область, из любого места которой видна эта переменная. В РНР используется шесть следующих базовых правил определения области действия переменной:
- Встроенные суперглобальные переменные видны из любого места сценария.
- Константы, как только они объявлены, всегда видимы глобально, т.е могут использоваться как внутри, так и вне функций.
- Глобальные переменные, объявленные в сценарии, видны в любом месте сценария, но не внутри функций.
- Переменные, используемые внутри функций, которые объявленные как глобальные, ссылаются на глобальные переменные с теми же именами.
- Переменные, созданные внутри функции и объявленные как статические, невидимы за пределами функции, однако они сохраняют свои значения между двумя вызовами этой функции.
- Переменные созданные внутри функции, являются локальными по отношению к своей функции и прекращают свое существование после завершения функции.
В версии РНР 4.1 и выше массивы $_GET и $_POST и ряд других специальных переменных подчиняются своим правилам, определяющим их область действия. Они принадлежат к категории суперглобальных переменных и видимы везде, как внутри функций, так и за их пределами.
Полный список суперглобальных переменных:
$GLOBALS
— массив всех глобальных переменных. Подобно ключевому словуglobal
, этот массив позволяет получать доступ к глобальным переменным внутри функции, например,$GLOBALS ['myfinks']
.$_SERVER
— массив переменных среды сервера.$_GET
— массив переменных, переданных в сценарий посредством методаGET
.$_POST
— массив переменных, переданных в сценарий методомPOST
.$_COOKIE
— массив cookie-переменных.$_FILES
— массив переменных, относящихся к загрузке файлов.$_ENV
— массив переменных окружения.$_REQUEST
— массив пользовательского ввода, включая содержимое массивов$_GET, $_POST, $_COOKIE
.$_SESSION
— массив переменных сеанса.
Понятие области действия переменных будет подвегнуто более подробному анализу во время изучения функций. Пока лишь отмечу, что все переменные, которые мы используем, по умолчанию являются глобальными.
Комментарии(0)
Для добавления комментариев надо войти в систему и авторизоватьсяКомментирование статей доступно только для зарегистрированных пользователей:Зарегистрироваться