laravel-5.5

laravel 5.5 - Error de análisis de PHP: error de sintaxis, inesperado ''?'' en helpers.php 233



laravel-5.5 (5)

Si acaba de actualizar su versión de PHP, es posible que se olvide de reiniciar su servicio de servidor web.

Cuando creo un nuevo proyecto de Laravel, el navegador muestra un error 500. Encontré esto en el registro:

Error de análisis de PHP: error de sintaxis, inesperado ''?'' en vendor / laravel / framework / src / Illuminate / Foundation / helpers.php en la línea 233

El código en 233 es:

return app(''cache'')->get($arguments[0], $arguments[1] ?? null);

Pero como sé, el operador de fusión nula ( ?? ) es compatible con PHP 7.0

Mi versión de PHP:

PHP 7.1.8-2 + ubuntu14.04.1 + deb.sury.org + 4 (cli) (construido: 4 de agosto de 2017 14:34:05) (NTS) Copyright (c) 1997-2017 The PHP Group Zend Engine v3. 1.0, Copyright (c) 1998-2017 Zend Technologies con Zend OPcache v7.1.8-2 + ubuntu14.04.1 + deb.sury.org + 4, Copyright (c) 1999-2017, por Zend Technologies

Versión Laravel: 5.5.0

¿Quién sabe lo que pasó?


Si se encontró con este error al usar la línea de comando, es porque debe estar usando php 7 para ejecutar lo que sea que esté tratando de ejecutar. Lo que sucedió es que el código está tratando de usar un operador que solo está disponible en php7 + y está causando un error de sintaxis.

Si ya tiene php 7+ en su computadora, intente señalar la línea de comando a la versión superior de php que desea usar.

export PATH=/usr/local/[php-7-folder]/bin/:$PATH

Aquí está la ubicación exacta que funcionó según mi configuración de referencia:

export PATH=/usr/local/php5-7.1.4-20170506-100436/bin/:$PATH

El operador que realmente causó la ruptura es el "operador de fusión nula", puede leer más sobre esto aquí:

php7 Nuevos operadores


Si tuviera que adivinar, diría que instaló el PPA 7.1.8 solo como CLI (php7-cli). Obtiene la información de su versión de eso, pero su paquete libapache2-mod-php sigue siendo 14.04 main, que es 5.6. Verifique su phpinfo en su navegador para confirmar la versión. También puede considerar migrar a Ubuntu 16.04 para obtener PHP 7.0 en main.


Tuve aproximadamente el mismo problema con Laravel 5.5 en ubuntu, finalmente encontré una solución here para cambiar entre las versiones de php utilizadas por apache:

  1. sudo a2dismod php5
  2. sudo a2enmod php7.1
  3. servicio sudo apache2 reiniciar

y funciona


Tuve el mismo error y el problema es que no había instalado correctamente Composer.

Estoy usando Windows e instalé Composer-Setup.exe de getcomposer.org y cuando tienes más de una versión de PHP instalada debes seleccionar la versión que estás ejecutando en este punto de la instalación