Урок посвящен способам хранения постоянных величин (констант) в скрипте 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.
Контрольные вопросы и задания
- Протестрируйте приведенный скрипт изменив значения и названия констант
- Добавьте в скрипт новую константу
- Какое сообщение будет получено при попытке присвоения значения константе?