How can I set the PHP version in PHPStorm?
So, you mean to highlight all pieces of code that will not work with the PHP version you are writing it in, right? That can be done here:
Preferences
-> Languages & Frameworks
> PHP
and the same on Mac:
PhpStorm -> Preferences (⌘,)
-> Languages & Frameworks
> PHP
Or with newer versions of PhpStorm in Windows:
File
-> Settings
-> Languages & Frameworks
> PHP
then select your PHP version, for example, 7.0
This is very useful when your local system runs PHP 7.0
, for example, but production is running PHP 5.5
.
That way PhpStorm will warn you which parts will not work in production, show proper hints during writing code according to the selected version, etc.
In case your field is disabled.
Probably your settings "Synchronize IDE settings with composer.json" is enabled
You may change your PHP version in composer.json
file
"require": {
"php": ">=7.1.0",
}
OR disable your settings in this path
File -> Settings -> Languages & Frameworks > PHP > Composer
*If you change your composer.json file - As Félix Gagnon-Grenier commented, Keep in mind it has effects on the way packages will be required later
You can use Alejandro Moreno's answer, but sometimes you might not be able to change PHP level from closed dropdown.
You can disable "Synchronize IDE settings with composer.json" checkbox from:
File -> Setting -> Languages & Frameworks -> PHP -> Composer
And after applying again open
File -> Settings -> Languages & Frameworks -> PHP
Here You can change PHP level from opened dropdown.
Open the Settings dialog box by choosing File | Settings, then click PHP under Languages & Frameworks. The PHP page opens.
Now you can do 2 things:
- On the PHP page that opens you can set the "PHP Language Level".
- You can install the PHP version that you wish locally by, for example, installing packages like wamp or xamp and then set the interpreter of your PHP on the PHP page that you opened. More info here
My composer PHP version is synchronized to the phpstorm , so to explicitly choose the php language level from the setting, check that the option in the picture bellow is disabled.