В этой статье мы разберём как происходит отладка PHP кода, это будет очень интересная статья особенно для новичков.
Ещё скажу, что в это статье не будет рассказываться про типы и способы отладки, об этом в другой статье.
Также перед прочтением этой статьи рекомендую посмотреть наш учебник по PHP.
Отладка PHP кода:
Здесь будет показываться как исправлять самый сложный тип ошибок, которые очень сложно заметить, это логические,
Тут будем использовать самый примитивный способ, просто будим выводить на экран переменные значения которых мы хотим узнать.
Но перед тем как начать использовать отладку, сделаем не большую функцию с ошибкой.
1 2 3 4 5 6 7 8 9 | function sum($finish) { $sum = 0; for ($i = 0; $i < $finish; $i++) { $sum += $i; } return $sum; } echo sum(3) |
Суть этой программы в том, что она будет складывать сумму от нуля до значения переменной $finish
, включительно.
Можете заметить, что мы при объявление этой функции, в качестве параметра $finish
используем чело три, значит вывести должно число шесть, вот результат.
Как вы видите, вывелось число три, а не шесть, как должно быт, для того что бы понять в чём проблема, нужно вывести значения переменных внутри самой функции, вот как мы изменили функцию.
1 2 3 4 5 6 7 8 9 10 | function sum($finish) { $sum = 0; echo "Итерация for"; for ($i = 0; $i < $finish; $i++) { echo '$i = ' . $i; echo '$sum = ' . $sum; $sum += $i; } return $sum; } |
Вот что вывелось на экран.
Тут можете заметить, что переменная $i
не становится равна переменой $finish
, и если посмотреть цикл, то окажется что он будет работать до тех пор, пока $i
меньше чем $finish
, надо поставить знак меньше или равно.
Вот результат если поменяем условие.
Всё заработало как надо, таким образом вы можете просматривать чему равна, та или иная переменная, даже можете попробовать сделать свою функцию для этого, где сразу будет отображаться значение и название самой переменной.
Отладка массива:
Теперь перейдём к отладке массива, а точнее посмотрим как происходит вывод данных из массива в PHP, вот не большой пример.
1 2 3 4 5 6 7 | $arr = array( "Данил", "Егор", "Саша" ); echo $arr; |
Вот результат.
Как видите, echo
не выводит данные массива, а только что это тип данных массив.
Что бы это исправить, подойдёт функция var_dump()
, которая выведет значение каждого ключа массива и его значение.
1 2 3 | echo '<pre>'; var_dump($arr); echo '</pre>'; |
Тут самое интересное, что мы по сути результат встраиваем в тег <pre>
, это нужно для того, что бы, проще разобрать данные массива, если этого не сделать, то всё выведется в одну строку, вот результат.
Как видите всё просто и понятно, ещё, вы можете использовать эту функцию для отладки объектов.
Также я рекомендую для ещё большой простоты, что бы не писать каждый раз тег <pre>
, можете создать функцию, где сразу всё будет.
Вывод:
В этой статье вы прочитали как происходит отладка и дебаг PHP кода, но тут был показан самый простой способ этого.
Также посмотрите статью, PHP Библиотека dBug, эта библиотека красива выводит все данные, что может упростить отладку.