Урок посвящен способам хранения постоянных величин (констант) в скрипте PHP.

В PHP для хранения постоянных величин, т.е. таких величин, значение которых не меняется в ходе выполнения скрипта, используются константы. Такими величинами могут быть математические константы, пароли, пути к файлам и т.п. Основное отличие константы от переменной состоит в том, что ей нельзя присвоить значение больше одного раза и ее значение нельзя аннулировать после ее объявления. Кроме того, у константы нет приставки в виде знака доллара и ее нельзя определить простым присваиванием значения. Как же тогда можно определить константу? Для этого существует специальная функция define() . Ее синтаксис таков:

define("Имя_константы", "Значение_константы", [Нечувствительность_к_регистру])

По умолчанию имена констант чувствительны к регистру. Для каждой константы это можно изменить, указав в качестве значения аргумента Нечувствительность_к_регистру значение True. Существует соглашение, по которому имена констант всегда пишутся в верхнем регистре.

Получить значение константы можно, указав ее имя. В отличие от переменных, не нужно предварять имя константы символом $. Кроме того, для получения значения константы можно использовать функцию constant() с именем константы в качестве параметра. Пример:

<?php
// определяем константу PASSWORD
define("PASSWORD","qwerty");

// определяем регистронезависимую
// константу PI со значением 3.14
define("PI","3.14", True);

// выведем значение константы PASSWORD, т.е. qwerty
echo PASSWORD;

// тоже выведет qwerty
echo constant("PASSWORD");

/* выведет password и предупреждение,
поскольку мы ввели регистрозависимую
константу PASSWORD */
echo password;

// выведет 3.14, поскольку константа PI
// регистронезависима по определению
echo pi;
?>

Кроме констант, объявляемых пользователем, о которых мы только что рассказали, в PHP существует ряд констант, определяемых самим интерпретатором. Например, константа __FILE__ хранит имя файла программы (и путь к нему), которая выполняется в данный момент, __FUNCTION__ содержит имя функции, __CLASS__ – имя класса, PHP_VERSION – версия интерпретатора PHP. Полный список предопределенных констант можно получить, прочитав руководство по PHP.

Контрольные вопросы и задания

  1. Протестрируйте приведенный скрипт изменив значения и названия констант
  2. Добавьте в скрипт новую константу
  3. Какое сообщение будет получено при попытке присвоения значения константе?