Отладка PHP и нахождение ошибок в коде
Меня запарили спрашивать всякую фигню. Поэтому сейчас расскажу пару способов быстро найти ошибку в коде.
1. Ошибка синтаксиса.
В этом вам поможет любой нормальный редактор с проверкой синтаксиса. Я использую Eclipse SDK с установленным плагином PDT. Замечательно подсвечивает синтаксис PHP, а также HTML, XML и XSL. Слегка работает с JS. Автоподстановка и прочие прелести в комплекте. Требует JRE для работы. Кушает много памяти.
Также ошибки синтаксисы выражаются во всяких загадочных фразах:
unexpected ЧТО-ТО, expecting ЧТО-ТО_ДРУГОЕ or ЕЩЁ_ЧЕГО-НИБУДЬ on line N – намекает нам о том, что там требуется ЧТО-ТО_ДРУГОЕ вместо ЧТО-ТО. Обычно это строка N-1. Например, скобку забыли поставить или точку с запятой.
unexpected $end – скорее всего забыли поставить закрывающую фигурную скобку.
Вообще слово unexpected переводится как неожиданный. Поэтому если вы это видите – знайте, что-то не там поставили или не дописали. Это как вам должны были выдать зарплату, а выдали мешок яблок. Вот это будет unexpected ‘мешок яблок’ :)
Call to undefined function – вы пытаетесь вызвать что-то несуществующее. Может написали prinf(); вместо printf(); ну и всё такое прочее.
Если вдруг у вас ничего не работает, но ничего не выводится, то поставьте параметр error_reporing = E_ALL; Будет отображать все ошибки, включая notice’ы.
Если даже с включенными ошибками у вас ничего не работает вообще – то тут уже надо курить логи апачи и php.
2. Ошибки логики.
Опять-таки надо первым делом включить error_reporting в E_ALL. Иначе уведомления типа: undefined index, undefined variable показываться не будут, и вы долго будете думать, “что ж таки случилось?”.
Далее. Если у вас на выходе получается не то, что вы хотите – делайте вывод своей переменной на каждом шаге. Причём не просто через print/echo, а через var_dump(), который покажет вам и тип переменной и всю её начинку.
Я вообще пользуюсь своей версией var_dump() ‘a:
-
/**
-
* Выводит информацию о переменной
-
* @param $text переменная для вывода
-
* @param $exit прекращать работу после вывода
-
*/
-
function vardump($text, $exit = false) {
-
print ‘<pre>’;
-
var_dump($text);
-
print ‘</pre>’;
-
if($exit)
-
die();
-
}
Спасибо понравилось !
Пасибо за материалы!
Respect maksimvoloshin.ru
Благодарность за материалы! :)
Respect maksimvoloshin.ru
Пишу тут раз обратной связи не нашла. У меня иногда пишет ошибку вот тут maksimvoloshin.ru Ошибка 403 «Доступ запрещен»
Что мне делать ? я иногда статьи у вас беру для своей газеты.
С Новым Годом Вас !
Отладка PHP и нахождение ошибок в коде | Блог программиста
Вашему сайту ставлю +