php Как понять где именно в строке ошибка (в каком символе, когда номер строки известен)
Primary tabs
Если в строке находится достаточно сложное выражение, то можно всегда разбить его на несколько строк, чтобы уточнить у интерпретатора что именно не так.
Пример разбиения одной строки на несколько
Рассмотрим пример:
<?php $s = []; $a = $s; $s[1] = '123' . $a;
- для этого кода мы получим сообщение:
Notice: Array to string conversion in [...][...] on line 5
- написано, что происходит некорректная попытка привести массив к строковому типу в 5-ой строке программы, но на первый взгляд на строку:
$s[1] = '123' . $a;
можно подумать, что проблема в части:
$s[1]
-- ведь именно там сразу заметен массив. На самом деле это не так, разобьём проблемную строку на максиму (больше нет смысла) - на три строки:
<?php $s = []; $a = $s; $s[1] = '123' . $a;
И тут мы уже увидим более точное указание на другую строку (хотя текст ошибки кроме номера строки, ни сколько не изменился):
Notice: Array to string conversion in [...][...] on line 7
Но теперь в 7 строке находится только переменная $a - значит проблема была вовсе не в той части, что слева от оператора присваивания, а именно $a является массивом следует исправлять строку, где $a инициализируется ,а именно:
$a = $s;
Данный способ (особенно для сложных выражений) позволяет не начинать сразу с детальной отладки, а облегчить дело уточнением места ошибки.
Оформление кода и совсем длинные строки
В хорошо оформленном коде не должно быть сильно длинных строк - считается, что 80 символов обычно достаточно - это где-то треть современных широких мониторов (хотя зависит конечно от размеров шрифта).
То же самое относится и к комментариям.
- Log in to post comments
- 1679 reads