Неопределенный индекс в пути PHP

Неопределенный индекс в пути PHP

08.10.2014 11:37:23 Просмотров 26 Источник

Новичок здесь для разработки расширений OpenCart. В настоящее время я разрабатываю расширение 99Bill (китайский способ оплаты).

В настоящее время я добавил новые файлы в каталоги MVC (так, я добавил файлы в admin, catalog и т. д., где я назвал свое расширение bill99, так как PHP не разрешает имена, которые начинаются с чисел).

Я пытался протестировать свое расширение, но на моей домашней странице OpenCart, я получаю следующую ошибку:

Краткое описание: mobile_description в /бродяга/версии/загрузить/каталог/модель/каталог/продукт.php на строке 20
Краткое описание: mobile_description в /бродяга/версии/загрузить/каталог/модель/каталог/продукт.php на строке 20
Краткое описание: mobile_description в /бродяга/версии/загрузить/каталог/модель/каталог/продукт.php на строке 20
Краткое описание: mobile_description в /бродяга/версии/загрузить/каталог/модель/каталог/продукт.php на строке 20
Краткое описание: mobile_description в /бродяга/версии/загрузить/каталог/модель/каталог/продукт.php на строке 20
Краткое описание: mobile_description в /бродяга/версии/загрузить/каталог/модель/каталог/продукт.php на строке 20

Я не совсем уверен, как я запустил его, так как я никогда не редактировал и не касался product.phpфайл раньше. Ошибка появляется, даже если я отключаю / удаляю расширение 99Bill.

Когда я перехожу к продукту.php, строка 20 просто говорит::

'description'      => $query->row['mobile_description']

У меня такое чувство, что моя ошибка не имеет никакого отношения к продукту.php файл, так как я никогда не касался его раньше, и, вероятно, относится к моему расширению 99Bill. Возможно, я не инициализировал класс где-то.

Для кого-то, кто имел эту ошибку раньше, не могли бы вы помочь мне понять это?

У вопроса есть решение - Посмотреть?

Ответы - Неопределенный индекс в пути PHP / Undefined index within a PHP path

Elias Van Ootegem

08.10.2014 11:42:24

Ну, строка 20 обращается к индексу массива, не так ли? Предположим, что индекс не существует,разве сообщение об ошибке, которое вы получаете, не имеет смысла? попробуйте сбросить содержимое $query->rowили заменить то, что у вас есть сейчас:

'description'      => isset($query->row['mobile_description']) ? $query->row['mobile_description'] : null,

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

https://stackoverflow.com/questions/26251535/undefined-index-within-a-php-path/26251605#comment41180257_26251605
Спасибо за помощь, Элиас. Я не совсем понимаю, почему, добавив новое расширение, я получу эту ошибку, которую я никогда не получал раньше.
https://stackoverflow.com/questions/26251535/undefined-index-within-a-php-path/26251605#comment41180372_26251605
@theGreenCabbage: обновил мой ответ, добавив ссылку на предыдущий ответ, который объясняет, откуда пришло уведомление. Итог: он всегда был там, но установка нового расширения, возможно, изменила настройки ini PHP, или они могли быть переопределены, держите их на этом более строгом уровне, хотя: уведомления есть, чтобы помочь
https://stackoverflow.com/questions/26251535/undefined-index-within-a-php-path/26251605#comment41180562_26251605
Спасибо за содержательный ответ! Я копнул немного глубже. Переключаясь обратно в мою главную ветвь (где расширение 99Bill не существует), это уведомление не будет существовать . Вероятно, что-то не так и с моим расширением 99Bill, поскольку я не могу его "включить".
https://stackoverflow.com/questions/26251535/undefined-index-within-a-php-path/26251605#comment41180642_26251605
@theGreenCabbage: не совсем: уведомление действительно существует. Он либо игнорируется, либо не отображается ( error_reportingи display_errorsотличаются). Независимо от того, каковы настройки, уведомление выдается внутренне, поэтому они вызывают накладные расходы и замедляют работу кода. Не игнорируйте их, исправьте их! Не вините расширение за то, что оно заставляет PHP быть более строгим, вините свой код за то, что он не был написан без уведомления
Закрыть X