Исправление ошибки "Use of undefined constant" в PHP

Александр Кичатов

Почему возникает ошибка

Ошибка Use of undefined constant появляется при попытке обращения к не существующей константе:

<?php
echo LOGIN;

Если в настройках PHP включено отображение ошибок уровня Warning, то при запуске этого кода PHP выведет ошибку:

Warning: Use of undefined constant LOGIN - assumed 'LOGIN'
(this will throw an Error in a future version of PHP)
in D:\Programs\OpenServer\domains\test.local\index.php on line 2

Как исправить ошибку

Чаще всего ошибка появляется когда разработчик забывает указать кавычки при обращении к элементу массива:

<?php
$arr = ['title' => 'Заголовок'];

// Неправильно
echo $arr[title];

// Правильно
echo $arr['title'];

Важный момент: когда PHP не находит константу, он возвращает строку с её названием. Поэтому при отключении отслеживания ошибок код будет работать и разработчик может даже не догадываться об ошибке:

<?php
// Скрываем ошибки
error_reporting(0);

$arr = ['title' => 'Заголовок'];

// Выведется 'Заголовок'
echo $arr[title];

Некоторые разработчики игнорируют эту ошибку, не считая её достаточно важной. Учтите, что (как следует из текста ошибки) в будущем она вместо Warning будет выбрасывать исключение, поэтому лучше заранее привыкать писать код правильно.

Комментарии