PHP parse/syntax errors: как читать и исправлять ошибки новичку

Онлайн-тренажер Python для начинающих

Изучайте Python легко и без перегрузки теорией. Решайте практические задачи с автоматической проверкой, получайте подсказки на русском языке и пишите код прямо в браузере — без необходимости что-либо устанавливать.

Начать курс

Вступление: почему 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, не паникуйте. Действуйте по плану:

  1. Прочитайте сообщение. Определите файл и строку.
  2. Посмотрите на указанную строку. Часто проблема видна сразу: пропущен символ, лишняя скобка.
  3. Проверьте строку выше. Если в строке 15 ошибка, посмотрите строку 14 — возможно, там забыта ;.
  4. Используйте подсветку синтаксиса. Хороший редактор (VS Code, PhpStorm) подсветит ошибки ещё до запуска.
  5. Включайте display_errors. В начале скрипта добавьте:
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
?&                

Блоги

Рекомендаций по книгам