问题:
明明在其他文件中定义并已经引用,但是还会显示未定义:
![](https://i-blog.csdnimg.cn/direct/b2fd89f999e6405e9ff62e180eb06d72.png)
![](https://i-blog.csdnimg.cn/direct/3f9b22f52c2f42a389733e8cbb5d2091.png)
![](https://i-blog.csdnimg.cn/direct/19c30ff1cef942a59940c580d245175b.png)
解决方案:
方法1 切换到低版本(测试1.2.3可以)操作如下。
打开扩展市场,在已安装扩展中找到 PHP intelephense,点击右侧设置,然后选择安装另一个版本。如下图。
![](https://i-blog.csdnimg.cn/direct/0ab3b1a281d04d66b4b234762898974a.png)
方法2 关闭高版本提示,操作如下。
打开扩展市场,在已安装扩展中找到 PHP intelephense,点击右侧设置,然后选择扩展设置
在右侧扩展设置中找到 diagnostics Undefined method,取消勾选,如下图。重新打开代码文件,提示消失。
(其实报错说定义不到啥酒把那个勾取消掉行了,不过不知道这样做会不会会真的可以)
(万一真的是未定义的错怎么办呢,所以我还是倾向第一种吧。。)
原因:
是因为php高版本找不到方法定义我们引用的东西,所以被认为是没定义
低版本就不会这样
资料:
VS Code当中PHP引用类不能被识别的常见原因及解决方法 - 芒果鱼 - 博客园 (cnblogs.com)
实际上VS code功能丰富是个美好的错觉,因为大部分针对特定编程语言和技术的功能都是第三方插件提供的,VS Code的核心始终非常精简。正因此在很多时候,VS code的提示报错并不是真正的代码错误,只是某些插件解析不同编程语言,和版本所带来的问题。而这些插件扩展误报的错误除了让人看着不爽之外,其实并不影响代码正常的运行。像这种的问题很多只需要停用相关不必要的插件即可解决问题。