Константы в PHP

Константы по принципу работы похожи на переменные, но имеют одно важное отличие - записать какое-либо значение в константу можно только 1 раз, перезаписать это значение уже не получится.

Создать константу можно с помощью функции define():

<?php
    define('LOGIN', 12345);
    echo LOGIN;
?>

Первым значением мы передаём название константы (в нашем случае LOGIN), вторым - значение 12345.

Как вы заметили, у константы нет значка $ в начале. Чтобы не путаться, PHP разработчики взяли за правило всегда писать константы большими буквами, а слова разделять нижним подчёркиванием _:

<?php
    define('LOGIN', 'admin');
    define('FIRST_PASSWORD', 123456789);
    define('SECOND_PASSWORD', 987654321);
?>

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

Строковые константы в PHP

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

define('LOGIN', 'admin');

$const_name = 'LOGIN';

echo constant($const_name); // admin

Встроенные или магические константы

В PHP существует несколько встроенных констант. Магическими они называются потому что их значение меняется в зависимости от контекста:

  • __LINE__ - текущая строка в скрипте
  • __FILE__ - полный путь и имя текущего скрипта
  • __DIR__ - полный путь к директории, в которой расположен скрипт

Есть и другие константы, но их назначение вы поймёте немного позже:

  • __FUNCTION__ - имя текущей функции
  • __CLASS__ - имя текущего класса с пространством имён
  • __TRAIT__ - имя текущего трейта с пространством имён
  • __METHOD__ - имя текущего метода
  • __NAMESPACE__ - имя текущего пространства имён
  • ClassName::class - имя классу, к которому мы обращаемся, с пространством имён
Задача

Напишите скрипт, который:
1. Создаёт константу PASSWORD со значением ioef84Fe#.
2. Выводит значение константы внутри тега div.

<?php
	define('PASSWORD', 'ioef84Fe#');

	echo '<div>', PASSWORD, '</div>';
?>