Вступление: почему PHP ругается и что с этим делать?
Вы пишете код, уверены, что всё идеально, нажимаете «Обновить» в браузере — и видите что-то вроде:
Parse error: syntax error, unexpected '}' in /home/user/index.php on line 15
Знакомо? Если вы хоть раз сталкивались с PHP parse/syntax errors, то знаете это чувство лёгкой паники. Кажется, что компьютер сошёл с ума, а вы — никудышный программист. Но на самом деле всё гораздо проще. PHP не пытается вас обидеть — он просто честно говорит: «Я не понимаю, что ты от меня хочешь».
В этой статье мы разберём, что такое синтаксическая ошибка PHP, как её читать, находить и, самое главное, — исправлять. Материал рассчитан на новичков, поэтому никакой магии — только практика и живые примеры. Поехали!
Что такое PHP parse/syntax errors простыми словами?
Представьте, что вы пишете письмо другу, но забываете поставить точку в конце предложения. Друг, конечно, догадается, что вы имели в виду. Но PHP — не друг. PHP — строгий учитель, который требует идеального порядка.
Parse error (ошибка парсинга) возникает, когда PHP не может разобрать ваш код из-за нарушения правил языка. Проще говоря, вы нарушили синтаксис PHP.
Вот самые частые причины:
- Пропущенная точка с запятой
; - Лишняя или пропущенная скобка
{},(),[] - Незакрытая кавычка или строка
- Неправильное использование ключевых слов
- Лишние символы в коде
Хорошая новость: PHP всегда подсказывает строку и тип ошибки. Наша задача — научиться читать эти подсказки.
Как читать сообщение об ошибке PHP?
Типичное сообщение выглядит так:
Parse error: syntax error, unexpected '}' in /var/www/index.php on line 15
Разберём по частям:
- Parse error — тип ошибки (синтаксическая)
- syntax error, unexpected '}' — что именно PHP не ожидал увидеть
- /var/www/index.php — файл, где произошла ошибка
- on line 15 — строка, где PHP споткнулся
Важный лайфхак: PHP часто указывает строку, где обнаружил проблему, но настоящая причина может быть на 1-2 строки выше. Например, если вы забыли точку с запятой в строке 14, ошибка может появиться в строке 15.
Топ-5 самых частых PHP parse/syntax errors (с примерами)
1. Пропущенная точка с запятой ;
Самая популярная ошибка среди новичков. Каждая инструкция в PHP должна заканчиваться ;.
Неправильно:
<?php
echo "Привет, мир"
echo "Как дела?";
?>
Ошибка:
Parse error: syntax error, unexpected 'echo' (T_ECHO) in /test.php on line 3
Правильно:
<?php
echo "Привет, мир";
echo "Как дела?";
?>
2. Незакрытые или неправильные скобки
У каждой открывающей скобки { должна быть закрывающая }. И наоборот.
Неправильно:
<?php
if (true {
echo "Условие выполнено";
}
?>
Ошибка:
Parse error: syntax error, unexpected '{' in /test.php on line 2
Правильно:
<?php
if (true) {
echo "Условие выполнено";
}
?>
3. Лишняя закрывающая скобка
Иногда мы ставим } там, где не нужно.
Неправильно:
<?php
$arr = [1, 2, 3];
echo $arr[0];
}
?>
Ошибка:
Parse error: syntax error, unexpected '}' in /test.php on line 4
Правильно:
<?php
$arr = [1, 2, 3];
echo $arr[0];
?>
4. Незакрытые кавычки
Строки должны начинаться и заканчиваться одинаковыми кавычками (" или ').
Неправильно:
<?php
echo "Привет, мир;
?>
Ошибка:
Parse error: syntax error, unexpected end of file in /test.php on line 3
Правильно:
<?php
echo "Привет, мир";
?>
5. Ошибки в массивах: путаница между [] и ()
Массивы создаются через квадратные скобки, а не круглые.
Неправильно:
<?php
$arr = (1, 2, 3);
?>
Ошибка:
Parse error: syntax error, unexpected ',' in /test.php on line 2
Правильно:
<?php
$arr = [1, 2, 3];
?>
Как искать и исправлять ошибки: пошаговый алгоритм
Когда вы видите PHP parse error, не паникуйте. Действуйте по плану:
- Прочитайте сообщение. Определите файл и строку.
- Посмотрите на указанную строку. Часто проблема видна сразу: пропущен символ, лишняя скобка.
- Проверьте строку выше. Если в строке 15 ошибка, посмотрите строку 14 — возможно, там забыта
;. - Используйте подсветку синтаксиса. Хороший редактор (VS Code, PhpStorm) подсветит ошибки ещё до запуска.
- Включайте display_errors. В начале скрипта добавьте:
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
?&