Visual Studio Code 找不到 PHP 函数 - 可能是“require_once”语法?

Maw*_*awg 5 php visual-studio-code

[解决方案] “未定义的函数”消息实际上来自 SonarLint。我向函数添加了类型提示,SonarLint 不再抱怨。


我想切换到 Visual Studio Code 进行 PHP 开发。

我的所有文件都require_once以此语法开头

require_once(__DIR__ .  DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'common'  . DIRECTORY_SEPARATOR . 'api'  . DIRECTORY_SEPARATOR . 'RequireCommonStuff.php');
Run Code Online (Sandbox Code Playgroud)

并且调试不会启动,大概是因为 VSC 说要调试的文件存在问题,大致如下

未定义函数“DumpGetAndPostParametersIfDebugging”。

该函数在我所需的文件之一中声明。

奇怪的是,这些语句没有报告任何问题require_once,但我想不出对于找不到该函数的其他解释。

该代码在 PHPstorm 中工作得很好,我正在测试localhost- 关于我做错了什么有什么想法吗?


[更新] 在所需文件中声明的每个函数都会发生该错误。这就是第一个例子的原因。

在 中RequireCommonStuff.php,我只有更多require_onces :

require_once(__DIR__ . DIRECTORY_SEPARATOR . 'constants.php');
require_once(__DIR__ . DIRECTORY_SEPARATOR . 'third_party' . DIRECTORY_SEPARATOR .'ChromePhp.php');
require_once(__DIR__ . DIRECTORY_SEPARATOR . 'errorHandling.php');
require_once(__DIR__ . DIRECTORY_SEPARATOR . 'trace.php');
require_once(__DIR__ . DIRECTORY_SEPARATOR . 'parseAndValidateUrlGetParameters.php');
Run Code Online (Sandbox Code Playgroud)

最后一个导致了我讨论的错误(尽管所有这些都会导致错误)。它的内容是(注意:不涉及类),标题注释被删除

function ParseAndValidateUrlGetParameters($url, 
                                         $inputType, 
                                         $filter, 
                                         $debug, 
                                         $reportIndicent=true, 
                                         $allFieldsMandatory=true)
{
Run Code Online (Sandbox Code Playgroud)

omi*_*mid 3

不确定,但您可以安装和测试PHP Intelephense而不是 Intellisense。还要检查 vscode 中是否添加了 php 路径“ php.validate.executablePath ”。