Внимание! На этой странице вы найдете материал урока из архивного курса по PHP. Курс был написан в 2024 году одним из первых учеников Codebra и, к моменту написания курса, опытным бэкэнд-разработчиком. К сожалению, курс не был дописан, а его автор молча пропал.
Полный список уроков доступен по тегу Архивный курс по PHP и на странице первого урока.
Константы - это неизменяемые переменные. Мы можем присваивать им любые значения: boolean, array, string, integer, null. Имя константы должно соответствовать тем же правилам объявления, что и для переменных PHP. Правильное имя начинается с буквы или символа подчёркивания, за которым следует любое количество букв, цифр и символов подчёркивания. При этом знак доллара ($) не нужен.
Существуют 2 вида констант:
- Ключевое слово
const- таким способом часто объявляют константу именно в классе PHP (про классы мы поговорим позднее); - Функция
define- такой способ используют в функциональном программировании.
В функциональном программировании (написание программы без ООП (Объектно-ориентированное программирование)) можете использовать как const, так и define.
При создании классов, define не работает (будет ошибка Parse error: syntax error, unexpected token "(", expecting variable in /home/user/scripts/code.php on line 4)
Создадим пару констант:
<?php
const USER_ONE = 'Alex';
define('USER_TWO', 'Oleg');
echo USER_ONE; // Распечатает Alex
echo USER_TWO; // Распечатает Oleg
?>
Как видите ничего сложного. Что в первом варианте присвоили константе значение, что во втором.
Так в чем же отличие const от define?
- Функция
defineпозволяет создавать регистронезависимые константы. Ее можно использовать в условиях. Выполняется во время выполнения программы (нужно немного больше ресурсов); - Ключевое слово
constсоздает регистрозависимую константу. Мы не сможем назвать константуUSER_TWO, а вызывать ее по имениuser_two.
После того как константа определена, её значение не может быть изменено или аннулировано.
Магические константы
Кроме констант, которые создаются программистом, существует отдельная группа магических констант. Пишутся они всегда с двумя нижними подчеркиваниями по обе стороны имени: __КОНСТАНТА__.
__LINE__- выводит номер строки в которой используется;__FILE__- выводит путь до текущего файла;__DIR__- выводит путь до директории в которой используется файл.
Их намного больше. Все рассматривать не будем, вы всегда можете найти их в интернете.
<?php
echo __LINE__; // Распечатает 2
echo __FILE__; // Распечатает /home/user/scripts/code.php
echo __DIR__; // Распечатает /home/user/scripts
?>
Предопределенные константы
Разработчики постарались для нас создать очень удобные константы которые мы можем использовать в своём коде. Константы специфические, я сам их не использую, но знать про них стоит.
PHP_VERSION- выводит текущую версию PHP;PHP_OS- выводит OS под которую собиралась программа;PHP_MAXPATHLEN- максимальная длина файловых имён (включая путь), поддерживаемая данной сборкой PHP;PHP_INT_MAX- максимальное целое число доступное в текущей версии PHP;PHP_FLOAT_MAX- максимальное возможное число типаfloat.
Заключение
Константы нужны только для тех значений, которые не будут изменяться в коде: подключение к БД, система перечислений и т.д. Не пишите их всегда и везде, для начала пишите только переменные, со временем вы поймете где можно ставить константы, а где этого не стоит делать.
В следующем уроке мы разберёмся со строками в PHP.
Задание
- Выведите все примеры
магический констант. - Выведите все примеры
предопределенных констант. - Создайте скрипт, в котором объявляется константа с именем
PIи значением3.14159. Затем напишите код, который рассчитывает и выводит площадь круга с радиусом5, используя созданную вами константу. - Создайте константу с именем
VERSIONи значением1.0.0. Затем используйте для вывода значения этой константы.Текущаю версия: значение константы; - Создайте константу
API_KEYсо значением12345, используя флаг нечувствительности к регистру. Затем попробуйте вывести её значение, используя разный регистр в имени.
Переходите к следующему уроку курса, а так же не забудьте посмотреть новый материал на Codebra по тегу PHP.
