【问题标题】:Visual Studio Code can't find PHP function - maybe "require_once" syntax?Visual Studio Code 找不到 PHP 函数 - 也许是“require_once”语法?
【发布时间】:2020-11-21 07:44:59
【问题描述】:

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

我所有的文件都以require_once开头,语法是这样的

require_once(__DIR__ .  DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'common'  . DIRECTORY_SEPARATOR . 'api'  . DIRECTORY_SEPARATOR . 'RequireCommonStuff.php');

并且调试不会启动,大概是因为 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');

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

function ParseAndValidateUrlGetParameters($url, 
                                         $inputType, 
                                         $filter, 
                                         $debug, 
                                         $reportIndicent=true, 
                                         $allFieldsMandatory=true)
{

【问题讨论】:

  • 唉,不。但是,赞成一个有用的链接:-)
  • 这里没有其他人使用 VSC 进行 PHP 开发吗?
  • 虽然我不建议改变你的编码风格,但你能尝试暂时改用文字require_once __DIR__ . '/constants.php' 格式吗?以防万一 VSC 无法解析它。这很奇怪,但最好排除。
  • 您,先生,真是个天才!!将其发布为答案,我会接受并奖励赏金。

标签: php visual-studio-code


【解决方案1】:

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

【讨论】:

  • 感谢您的提示。是的,路径是在文件夹的 JSON 配置中设置的。切换 InteliSense 没有帮助:-(
【解决方案2】:

您是否尝试过使用DIRECTORY_SEPARATOR 常量而不是/

$slash = DIRECTORY_SEPARATOR;
require_once(__DIR__ . "{$slash}..{$slash}..{$slash}common{$slash}api{$slash}RequireCommonStuff.php");

【讨论】:

  • 对不起,但这并没有帮助[P :-( require_once(__DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'common' . DIRECTORY_SEPARATOR . 'api' . DIRECTORY_SEPARATOR . 'RequireCommonStuff.php'); 仍然给我错误。REQUIRE_ONCE 没有问题,但 Undefined function 用于该文件中的函数
  • 你能在问题描述中分享你需要的那个文件的内容吗?
  • 完成。我希望它有所帮助。在 PHPstorm 中这一切都很好,只是在 VSC 中没有
【解决方案3】:

刚刚遇到同样的问题并想通了: 如果您还没有这样做,您应该使用“文件”菜单中的“打开文件夹”并导航到您的 PHP 脚本所在的位置。这样,VSC 显然会在其工作目录中找到这两个脚本,并且不再显示错误。

旁注:我正在运行 VSC 1.55.2 和“PHP Intelephense”,以防仅打开文件夹对任何人都不够。

【讨论】:

    猜你喜欢
    • 2021-06-05
    • 2018-11-16
    • 2018-03-26
    • 1970-01-01
    • 2020-02-27
    • 2023-03-03
    • 1970-01-01
    • 2018-01-28
    • 2020-01-16
    相关资源
    最近更新 更多