ресурс для начинающих веб-разработчиков
комплексные веб-услуги по созданию сайтов

Справочный материал по основным языкам программирования и верстки сайтов.

Готовая методика создания простых и сложных динамичных сайтов, с использованием PHP и MySQL.

Использование веб-редактора Adobe Dreamweaver в разработке сайтов.

Использование графических редакторов Adobe Flash, Adobe Photoshop, Adobe Fireworks в подготовке веб-графики.

Разработка веб-сайтов под "ключ".

Разработка отдельных фрагментов сайтов, консультации по вопросам верстки веб-страниц и веб-программирования.

Объявление и использование констант. Область действия переменных

Переменные

Объявление и использование переменных

Мы знаем, что значение, хранящееся в переменной, можно изменить. Наряду с этим, в РНР допускается объявление констант. Как и переменная, константа хранит значение, но ее значение устанавливается раз и навсегда, и не может изменяться ни в какой части сценария.

В нашем приложении цены всех товаров, выставленных на продажу, можно сохранить в виде констант. Такие константы можно определить с помощью функции 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 — массив переменных сеанса.

Понятие области действия переменных будет подвегнуто более подробному анализу во время изучения функций. Пока лишь отмечу, что все переменные, которые мы используем, по умолчанию являются глобальными.