PHP Parse error: syntax error, unexpected T_STRING

  • Обновлено
  • Чтение ≈ 3 минуты

Краткий ответ

Найдите пропущенную точку с запятой, скобку или кавычку в указанной строке.

В этой статье
  1. Что означает ошибка
  2. Причины и решения
  3. Пошаговое решение
  4. Типичные ситуации
  5. Как быстро найти место
  6. Версии PHP
  7. Как избежать ошибки в будущем
  8. Пример типичной ошибки

#Что означает ошибка

Сообщение
Parse error

Parse error: syntax error, unexpected T_STRING — ошибка синтаксиса: PHP не смог разобрать код, потому что встретил лексему там, где она недопустима. Сообщение указывает номер строки, но настоящая причина часто на строку выше: незакрытая кавычка, пропущенная точка с запятой или скобка.

Так как разбор прерывается ещё до выполнения, ни одна строка скрипта не отработает. Эта ошибка типична после ручной правки файлов и копирования кода из интернета.

Найдите пропущенную точку с запятой, скобку или кавычку в указанной строке.

#Причины и решения

Возможная причинаКак узнатьЧто делать
Пропущен разделитель выраженияСтрока перед указанной в ошибке заканчивается без обязательной ;.В редакторе исправить конкретное выражение и запустить php -l.
Незакрытая строкаПодсветка синтаксиса показывает незакрытую одинарную или двойную кавычку.Исправить экранирование/кавычки в исходном выражении.
Несогласованные скобкиРедактор отмечает лишнюю или недостающую круглую/фигурную скобку.Проверить блоки вокруг указанной строки и повторить проверку синтаксиса.
Старый PHP для современного кодаТекущая веб-версия PHP не поддерживает конструкцию, указанную в коде.Сверить требования приложения и планово выбрать поддерживаемую версию PHP.

#Пошаговое решение

  1. Прочитайте номер строкиОткройте журнал сайта или вывод командной строки и найдите полное сообщение Parse error: syntax error, unexpected ... in /путь/файл.php on line N. Запишите абсолютный путь, номер строки и точную лексему: в PHP 7/8 вместо старого T_STRING часто указывается unexpected identifier. Откройте именно этот файл в редакторе с номерами строк (например, VS Code: «Файл» → «Открыть файл», затем Ctrl+G и номер строки). Сначала сохраните резервную копию, особенно если это рабочий сайт. Не исправляйте другой одноимённый файл в чужой копии проекта.
  2. Проверьте предыдущую строкуПосмотрите участок примерно за 5–10 строк до указанного места: PHP нередко обнаруживает ошибку после фактически пропущенного символа. Проверьте парные кавычки ('/"), круглые и фигурные скобки, закрывающую ; после законченного выражения, а также случаи вроде echo 'It's';, где апостроф должен быть экранирован или строка должна использовать двойные кавычки. В терминале в каталоге проекта выполните php -l файл.php, подставив путь к нужному файлу; команда лишь проверяет синтаксис и не запускает скрипт. При исправлении повторите её до ответа No syntax errors detected.
  3. Проверьте версию PHPЕсли ошибок в окружающих строках не видно, сравните версии PHP в командной строке (php -v) и на веб-сервере (активная версия PHP-FPM или хостинга). Синтаксис match, enum, стрелочные функции и некоторые типы появились только в определённых версиях; старый интерпретатор их не понимает. Не переключайте работающий сайт на другой выпуск без резервной копии и проверки совместимости расширений и движка. После исправления в безопасной тестовой среде проверьте синтаксис нужным бинарным файлом PHP, повторите исходную операцию и проверьте журнал на новые ошибки.

#Типичные ситуации

Нет точки с запятой в конце предыдущей строки; кавычка внутри строки той же кавычкой (echo 'It's'); пропущенная или лишняя скобка; запятая вместо точки при конкатенации; использование ключевого слова версии PHP, которое не поддерживается вашей версией (например, match, enum или типизированные свойства на старом PHP).

#Как быстро найти место

Выполните php -l файл.php — команда проверяет синтаксис без запуска. Откройте IDE с подсветкой синтаксиса: она отметит проблемное место. Смотрите на 1–3 строки выше указанной. Проверьте парность скобок и кавычек и экранируйте символы внутри строк.

#Версии PHP

После переезда на старую версию PHP современные конструкции вызовут parse error. Проверьте php -v и требования проекта. Обновление PHP до поддерживаемой версии решает такие ошибки и повышает безопасность.

Linux · Терминал (Bash)Команда
Выполнить по отдельности из каталога проекта; index.php заменить фактическим файлом из журнала. Проверка синтаксиса не исполняет код.
php -v
php -l index.php

#Как избежать ошибки в будущем

Используйте редактор с подсветкой и автоматическим закрытием скобок и кавычек, подключите линтер (PHP_CodeSniffer, PHPStan) и запускайте php -l перед загрузкой файла на сервер. Не копируйте код из интернета в текстовые редакторы, которые заменяют обычные кавычки на типографские: PHP их не понимает и сообщает о неожиданной лексеме.

#Пример типичной ошибки

Строка echo 'Это не работает'; приведёт к ошибке, потому что апостроф закрывает строку раньше времени. Исправление: экранировать апостроф (\') или использовать двойные кавычки. Если ошибка указывает на строку, где всё выглядит правильно, найдите незакрытую кавычку или скобку выше по файлу.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 1 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.