PHPStorm无法分析变量的路径?

Rem*_*iDG 10 php phpstorm

不是那么棒的画面

如您所见,第一个require_once没有给出弱警告.后者确实如此,但我不明白为什么.有什么理由发生这种情况吗?该文件存在并包含一个类.如果它有用,这就是文件结构:

-| Project
  -| Anomius
    - Anomius.php (This is the included file)
  -| Sites
    -| Foo
      - app.php (This is the file on the image)
Run Code Online (Sandbox Code Playgroud)

Log*_*kos 8

只需禁用产生警告的PhpStorm中的设置:

Settings搜索"悬而未决包括",这是下Editor> Inspections; PHP> General>Unresolved include

并取消选中该框.


Joh*_*ank 6

这是一个较晚的答案,但截至目前(2021 年)PHPStorm 可以通过以下评论在更细粒度的基础上抑制警告:

    /** @noinspection PhpIncludeInspection */
Run Code Online (Sandbox Code Playgroud)

您可以将其放在语句级别(位于相关行的正上方)、方法级别(位于语句所在方法的上方)或文件级别(位于标记之后的文件顶部<?php)。

如果您使用其中一种快速操作,PHPStorm 会将注释放在适合您的位置。显然,您更喜欢什么,并且禁用警告仍然是一种选择,但我可能需要在不同的位置再次发出警告,只要它有效。


eli*_*rak 5

默认情况下,PHPStorm 只记住变量名称,而不记住值。因此,如果您开始输入$ano,它会自动完成$anomius,但它不知道$anomius实际包含什么。

要让 PHPStorm 了解您的文件所在位置,请尝试以下操作:

$anomius = "your_file.php";
/** @define "$anomius" "/absolute/path/to/your/php/file" */
require_once($anomius);
Run Code Online (Sandbox Code Playgroud)

  • 这是相当无用的:您使用动态变量是有原因的。如果你在上面声明它,那么首先使用变量有什么意义呢? (7认同)
  • 所以你的答案简而言之:不要对 require_once 使用动态变量。您的回答在某种程度上具有误导性,因为在这种情况下他只会这样做:require_once('your_file.php')。如果您已经知道它的值,为什么要将其放入变量中?完全是废话.. (3认同)