Запретить изменять переменную (Константа)

В PHP можно создавать константы (англ. constant). Константа это тоже самое, что и переменная, только её нельзя изменить или удалить.

Константа создаётся через функцию define().

define('NAME', 'Значение');

echo NAME; // Значение

Выводится константа без кавычек, как на примере выше.

Имя константы должно начинаться с буквы или нижнего подчёркивания. Константы рекомендуется называть полностью с большими буквами.

Имена констант регистрозависимы, т.е. имена «NAME» и «Name» это две разные константы.

При попытке изменить константу, PHP выведет ошибку «Константа уже определена».

define('NAME', 'Значение');
define('NAME', 'Попытка изменить константу'); // Warning: Constant NAME already defined

echo NAME; // Значение

Начиная с версии PHP 7.0, константу можно определять как массив.

define('FRAMEWORKS', ['Laravel', 'Yii', 'Symfony']);

FRAMEWORKS; // Array ( [0] => Laravel [1] => Yii [2] => Symfony )

Константы также можно создавать через ключевое слово const, но такие константы рекомендуется создавать в ООП.

Проверить константу на существование

Проверить, определена ли константа можно через функцию defined().

if (defined('NAME')) {
    // Константа определена
}

В функции defined() константу надо указывать в кавычках, иначе функция будет возвращать «false».

Область видимости констант

Константы доступны в любом месте кода. Если переменные внутри функции недоступны, то константу можно использовать.

define('NAME', 'Константа');
$name = 'Переменная';

function echo_data() {
    echo NAME;  // Константа
    echo $name; // NULL
}