То, что вы видите, вероятно, не ошибка , а предупреждение .
PHP может выдавать предупреждение, потому что вы используете переменную, котораяне был инициализирован.Вполне вероятно, что в вашей локальной PHP-установке разработки есть предупреждающие сообщения, а в живом сервере они включены.(На самом деле, лучшей практикой было бы иметь его наоборот!)
В этом случае возможно, что $withEmptyTitle = $row->eventTitle;
не инициализирует переменную $withEmptyTitle
, если свойство eventTitle
возвращаеткак не установлено.Затем он будет следовать за следующей строкой и выдаст предупреждение, когда вы попытаетесь использовать переменную в вызове str_replace()
.
Вы можете избежать этого предупреждения:
- Отключение предупреждающего сообщенияв PHP.ini
- Выполнение
ini_set()
для его отключения во время выполнения программы. - с использованием
isset($withEmptyTitle)
для проверки того, что переменная установлена перед ее фактическим использованием. - Обеспечение того, что
$row
действительно содержит свойство eventTitle
(в контексте вашей программы, если оно отсутствует, это может означать неверные данные или неправильную настройку таблицы базы данных? В любом случае, вы можете изменить SQL-запрос на использованиеIFNULL()
или, по крайней мере, убедитесь, что поле явно запрошено.
[РЕДАКТИРОВАТЬ]
Я вижу, вы редактировали вопрос. В частности, я отмечаю следующее:
Line Number: 54 // $withEmptyTitle = $row->eventTitle;
Я отмечаю, что //
.... означает ли это, что строка закомментирована? Получили ли вы копию на сервере, который закомментировал эту строку? Это, безусловно, объясняет тот факт, чтовы получаете предупреждения!