Ошибка синтаксического анализа Laravel: синтаксическая ошибка, неожиданный T_CLASS, ожидающий T_STRING или T_VARIABLE

21

После установки laravel мы получим сообщение об ошибке:

  

Ошибка анализа: синтаксическая ошибка, неожиданный T_CLASS, ожидающий T_STRING или T_VARIABLE или '$' в C: \ xampp \ htdocs \ laravel \ public \ index.php в строке 50

    
задан rajkishor saw 25.08.2015 в 15:39
источник
  • Ваша версия PHP? –  idmean 25.08.2015 в 15:43
  • У меня все еще есть эта проблема, и мы не можем использовать наше приложение для laravel вживую. Мы используем php 5.6. для apache и для командной строки. «php -v» дает «5.6» –  John Little 10.08.2017 в 17:46
  • Вы создали ключ? –  Nikonah 25.02.2018 в 11:57

4 ответа

27

Laravel 5.1 использует свойство ::class для получения строковых представлений полного класса. Ошибка, которую вы видите, вызвана этой линией

$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);

Эта языковая функция была введена в PHP 5.5, что является требованием Laravel 5.1. Ваша установленная версия PHP, вероятно, старше 5.5. Попробуйте обновить двоичный файл PHP.

Если вас интересует, почему используется ::class , просмотрите этот ответ

    
ответ дан lukasgeiter 25.08.2015 в 15:58
  • Я использую php 5.6.0, но все же я получаю ошибку Parse: синтаксическая ошибка, неожиданный «класс» (T_CLASS), ожидающий идентификатор (T_STRING) или переменная (T_VARIABLE) или «{» или «$» в C : \ wamp \ www \ laravelmaster \ public \ index.php в строке 50, я проверил из cmd как php -v и использовал laravel 5.2 –  151291 30.05.2016 в 11:52
  • @ 151291 Версия CLI для PHP (тот, который вы получаете с php -v) может отличаться от версии вашего веб-сервера. Поместите phpinfo () в файл PHP и откройте его в своем браузере. Там вы должны увидеть фактическую версию, которую использует ваш сервер ... –  lukasgeiter 30.05.2016 в 15:05
3

То же самое случилось со мной. Я обнаружил, что веб-сервер использует мою старую версию PHP 5. Чтобы решить эту проблему для меня, я сделал это -

sudo a2dismod php5
sudo a2enmod php7.0
sudo service apache2 restart
    
ответ дан vinay saini 25.11.2016 в 11:01
  • Это была моя проблема, а php -v в командной строке пользовался 7.1, но сервер все еще находился на php5 –  willcwf 23.05.2018 в 19:38
1

Ваша версия PHP на вашем Xampp ниже 5.5.9, как указано в документе Laravel 5.1 .

Просто удалите текущее программное обеспечение Xampp и загрузите новую копию на веб-сайте Apache с этой спецификацией 5.6.12 / PHP 5.6.12 .

Не забудьте сотрудничать с вашим провайдером хоста, чтобы убедиться, что ваша учетная запись хостинга использует требуемую версию PHP (& gt; = 5.5.9) во время развертывания вашего приложения Laravel 5.1 в Интернете.     

ответ дан The Oracle 15.09.2015 в 16:52
  • Возможно, это и версия. Но убедитесь, что вы получаете версию, действующую на вашем сервере, на виртуальной машине или на том, что вы используете –  Nikonah 25.02.2018 в 11:59
0

Ваша версия php слишком низкая. Попробуйте версию 7.0 или более поздней версии.

    
ответ дан 风声猎猎 10.04.2018 в 11:29