Reputation: 833
When I create a new Laravel project, the browser displays an error 500. I found this in the log:
PHP Parse error: syntax error, unexpected '?' in vendor/laravel/framework/src/Illuminate/Foundation/helpers.php on line 233
the code in 233 is:
return app('cache')->get($arguments[0], $arguments[1] ?? null);
But as i know, null coalescing operator( ??
) is supported from PHP 7.0
My PHP Version:
PHP 7.1.8-2+ubuntu14.04.1+deb.sury.org+4 (cli) (built: Aug 4 2017 14:34:05) ( NTS ) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies with Zend OPcache v7.1.8-2+ubuntu14.04.1+deb.sury.org+4, Copyright (c) 1999-2017, by Zend Technologies
Laravel Version: 5.5.0
Who knows what happened?
Upvotes: 43
Views: 137771
Reputation: 26
I had similar kind of problem. It looked like this:
Null coalescing operator( ?? ) is not supported by my version of PHP. As I had no option to upgrade the version, I wrote something like this: {{ $product->price ? $product->price:'' }}
instead of {{ $product->price ?? '' }}
and it solved the problem.
Upvotes: 1
Reputation: 11
I had the same problem with the laravel initiation. The solution was as follows.
1st - I checked the version of my PHP. That it was 5.6 would soon give problem with the laravel.
2nd - I changed the version of my PHP to PHP 7.1.1. ATTENTION, in my case I changed my environment variable that was getting Xampp's PHP version 5.6 I changed to 7.1.1 for laragon.
3rd - I went to the terminal / console and navigated to my folder where my project was and typed the following command: php artisan serves. And it worked! In my case it started at the port: 8000 see example below.
C: \ laragon \ www \ first> php artisan serves Laravel development server started: http://127.0.0.1:8000
I hope I helped someone who has been through the same problem as me.
Upvotes: 1
Reputation: 5947
I had the same error and the problem is that I had not correctly installed Composer.
I am using Windows and I installed Composer-Setup.exe
from getcomposer.org and when you have more than one version of PHP installed you must select the version that you are running at this point of the installation
Upvotes: 1
Reputation: 489
I had approximately the same problem with Laravel 5.5 on ubuntu, finally i've found a solution here to switch between the versions of php used by apache :
and it works
Upvotes: 17
Reputation: 593
If you have newly upgraded your php version you might be forget to restart your webserver service.
Upvotes: 1
Reputation: 281
If you came across this error while using the command line its because you must be using php 7 to execute whatever it is you are trying to execute. What happened is that the code is trying to use an operator thats only available in php7+ and is causing a syntax error.
If you already have php 7+ on your computer try pointing the command line to the higher version of php you want to use.
export PATH=/usr/local/[php-7-folder]/bin/:$PATH
Here is the exact location that worked based off of my setup for reference:
export PATH=/usr/local/php5-7.1.4-20170506-100436/bin/:$PATH
The operator thats actually caused the break is the "null coalesce operator" you can read more about it here:
Upvotes: 2
Reputation: 1405
If I had to guess, I'd say you installed the PPA 7.1.8 as CLI only (php7-cli). You're getting your version info from that, but your libapache2-mod-php package is still 14.04 main which is 5.6. Check your phpinfo in your browser to confirm the version. You might also consider migrating to Ubuntu 16.04 to get PHP 7.0 in main.
Upvotes: 55