如何在VSCode中更改PHP版本?

6
我正在使用iis和vscode进行php工作。最近我将iis从php7.3更新到php7.4。我的问题是,vscode仍在使用php7.3。我搜索了如何在vscode中更改版本的方法,几乎所有资源都说,在“文件>首选项>设置”下的php设置中可以更改JSON文件。但当我搜索php时,我没有看到任何这些选项。我做错了什么?

enter image description here

enter image description here


在 settings.json 中进行编辑。 - brombeer
你在 VS Code 中安装了 PHP 扩展吗? - Hury Shen
4个回答

5

代码 -> 首选项 -> 设置

寻找 "php版本"。然后更改它。


3

虽然你可以为intelephense插件设置版本,但这并没有太大帮助,因为似乎此设置不适用于VSC本身。但是你可以将 php.validate.executablePath 设置为你的 php.exe 文件的路径,例如 "php.validate.executablePath": "C:/wamp64/bin/php/php7.4.9/php.exe"。当未设置 php.validate.executablePath 时,这应该会覆盖VSC从系统PATH环境设置中获取的可能错误的php路径。


如果您使用PHP Intelephense,您不应该有这些指令可用。根据Intelephense设置说明,这些指令属于内置的PHP扩展,需要禁用。 - undefined

2
您可以像在截图中看到的那样直接设置值。输入项名为 PHP 版本。如果您为特定工作区这样做,将创建一个文件,其位置为:
{path_to_workspace}/.vscode/settings.json

如果在资源管理器中看不到.vscode文件夹,则需要在资源管理器中更改设置以查看隐藏文件夹。
如果您在截图中的特定工作区页面上设置了PHP版本,则应在settings.json中找到类似以下条目的条目。
{
  "intelephense.environment.phpVersion": "8.1.0"
}

将其改为

{
  "intelephense.environment.phpVersion": "7.4.0"
}

如果您想全局更改所有项目的设置,可以执行以下操作:
打开资源管理器或命令行(cmd.exe),并输入或复制以下行:
%APPDATA%\Code\User\settings.json

通常情况下,如果vscode未启动,则会启动它并打开settings.json文件。
在该文件的开头,在左花括号后添加以下内容。
  "intelephense.environment.phpVersion": "7.4.0",

  ... rest of the existing settings.json file here

在您手动更改这些文件之前,最好先备份这些文件。


这在我的Mac OS上没有起作用,但是将以下行添加到settings.json中就可以了: "php.validate.executablePath": "/usr/local/opt/php@8.0" - smohadjer
@smohadjer 这是因为你没有使用 PHP Intelephense 扩展,而 OP 使用了。 - undefined

1

由于上述答案未解决我的问题,我想提供一个额外的解决方案,解决了我在 VS Code 中使用正确 PHP 版本的问题。我在安装 Laravel 时遇到了这个问题,在 VS Code 终端中出现错误,提示我的平台正在使用 PHP 7.4,而 Laravel 9 需要 PHP 8.0.2。我头疼不已,不知道 VS Code 是从哪里获取 我的平台 正在使用 PHP 7.4 的信息(然而我的 WAMP 服务器正在使用 PHP 8.2),并且我还按照上面的答案在 VS Code 设置中进行了以下设置:

  1. "php.validate.executablePath": "C:/wamp64/bin/php/php8.2.0/php.exe"
  2. "intelephense.environment.phpVersion": "8.2.0",

但是在创建新的 Laravel 项目时,VS Code 终端仍然给出了上述错误,并没有识别我的 PHP 8.2 版本。

因此,我在 Windows 11(在 Windows 10 中也适用)中找到了最终可行的解决方案,即在环境变量中设置 Path 变量(指向 PHP 可执行文件)。

1. 在Windows的开始菜单中点击并搜索环境变量 -> 您可以打开该控制面板并单击打开环境变量设置:

enter image description here

2. 你将会得到一个新的模态窗口,你需要像下面的图片一样点击系统变量中的路径:

enter image description here

3.你可以找到PHP路径,只需将路径值编辑为你自己所需的PHP文件夹,然后点击确定。我不确定是否是可选的,但我重新启动了我的VS Code编辑器,在此之后,关于PHP版本的所有内容都在VS Code中正常运行。

enter image description here

关于此事的一些重要警告

据我记得,我使用WAMP已经有十多年了,从来没有在Windows中设置PHP路径变量时遇到过任何问题。只有在最近几年,当你在Windows中将PATH变量设置为PHP可执行文件时,WAMP才会发出警告,因为WAMP不需要这样做,而且一些开发人员认为这是一种不好的做法,最重要的是因为它有点不必要,如果我们忘记在Windows中进行设置并想使用另一个版本的PHP,则稍后可能会导致一些问题。所以通常的问题,并不是因为Windows中的丑陋安全原因,而是因为我们作为开发人员的记忆力很差。这只会增加我们的愚蠢因素,影响我们未来的生活。而且还有更优化的解决方案。

我的建议是,如果有人时间短暂,可以深入了解一下这个主题,您可以阅读更多关于如何为VS Code设置PHP版本的详细信息。因此,我的上述解决方案是好的,没有问题,作为短期解决方案,但是在解决此问题时,请记住这个警告,并在此处深入研究此主题。

我也阅读了一些有用的链接:

如何在WAMPServer中从Windows命令行运行PHP

如果您想使用不同的PHP版本启动VS Code,这篇文章非常有帮助:

xampp和vs code上的php版本问题

还有这个:

如何在WAMPServer中从Windows命令行运行PHP


你还需要重新启动VSCode。我曾经遇到这样的问题,命令提示符更改了PHP版本,但是VSCode终端没有更改。但是在关闭并重新打开VSCode后,它就可以正常工作了。 - Studocwho
如果您正在使用WAMPServer,绝对不要将任何PHP文件夹放在Windows PATH上! - RiggsFolly
@RiggsFolly - 能否请您提供更详细的说明链接,谢谢。在过去10多年中,我仅在本地开发目的上使用WAMP,从未遇到任何问题。 Wamp会在Windows中设置了路径到PHP时发出警报-在过去的几年中,但我没有看到更长的解释为什么这样做很糟糕,如果wamp只用于本地目的,则Windows上的PHP文件夹应该在哪里。如果您抽出时间提供一个链接,谢谢! - Zollie
1
我必须说,这主要是针对初学者的。如果你知道自己在做什么,把它加入路径也不会有任何损害。我会假装我没有在公开评论中说过这句话。 - RiggsFolly
请注意,如果您使用PHP Intelephense,则不应该使用php.validate.executablePath指令,也不需要设置PHP解释器路径以使Visual Studio Code工作。这些属于内置的PHP扩展,根据Intelephense设置说明,必须被禁用。 - undefined
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接