Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHPStorm可以';t从变量分析路径?_Php_Phpstorm - Fatal编程技术网

PHPStorm可以';t从变量分析路径?

PHPStorm可以';t从变量分析路径?,php,phpstorm,Php,Phpstorm,正如您所看到的,第一个require_一次不会给出微弱的警告。后者有,但我不明白为什么。发生这种情况有什么原因吗?该文件存在并包含一个类。如果有用,以下是文件结构: -|项目 -|失范 -Anomius.php(这是包含的文件) -|地点 -|福 -php(这是图像上的文件) 默认情况下,PHPStorm只记住变量名,而不记住值。因此,如果您开始键入$ano,它将自动完成$anomius,但它不知道$anomius实际包含的内容 要使PHPStorm了解文件的位置,请尝试以下操作: $anomi

正如您所看到的,第一个require_一次不会给出微弱的警告。后者有,但我不明白为什么。发生这种情况有什么原因吗?该文件存在并包含一个类。如果有用,以下是文件结构:

-|项目
-|失范
-Anomius.php(这是包含的文件)
-|地点
-|福
-php(这是图像上的文件)

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

要使PHPStorm了解文件的位置,请尝试以下操作:

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

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

设置中
搜索“未解决的包含” 在
编辑器下
检查
<代码>PHP
常规
未解决的包括


然后取消选中该框。

这是一个迟来的答案,但截至目前(2021年),PHPStorm可以在更精细的基础上通过注释抑制警告:

    /** @noinspection PhpIncludeInspection */

您可以将其放在语句级(位于所讨论的行的正上方)、方法级(位于语句所在的方法上方)或文件级(位于
Yes之后的文件顶部),因为它是一个变量,可以随时更改其值(甚至可以从未知源(例如DB)分配)。如果需要,请使用常量,因为PhpStorm不会跟踪变量值。您尝试过单击“更多…”链接吗?它可能更具描述性…@STTLCU-Nah,这并没有告诉我太多。它只是说“包含表达式未解析”。@STTLCU-PhpStorm的“更多…”链接很少有帮助(我不使用phpstorm,可能它有所不同。值得一试。^^“无论如何,消息”包含表达式未解析"很明显:在代码分析的这一点上,IDE无法解析var内容,并且可以事先知道需求是否成功!这是非常无用的:您在那里使用动态变量是有原因的。如果您在上面声明它,那么首先使用变量有什么意义?是的,它是动态的,但至少是动态的至少它让PHPStorm满意。当脚本运行时,注释无论如何都会被忽略,因此如果文件url不同,它不会导致任何问题。因此,简而言之,您的答案是:不要对require_使用动态变量一次。您的答案在某种程度上是误导性的,因为在这种情况下,他只会这样做:require_once('your_file.php')。如果你已经知道它的值,为什么要把它放入变量中?这完全是胡说八道。不,我不是这么说的。你可以使用动态变量。问题是如何消除警告,答案是:告诉PHPStorm该变量的值是什么,值是否正确并不重要。但是在ca中由于$anomius是静态的,所以这个问题恰好是正确的。我为文件夹结构定义了一个常量,并使用了这个语法。PS不能检测文件。+1
/**@define“MY_PATH”。/abs/PATH/“*/define('MY_PATH',somefunction('…);
我更喜欢这个解决方案,因为这个警告出现在自定义的“导入”中函数,它接受包含类的相对路径,因此不需要将dirname()和
\uuuu文件\uuu
放在任何地方,只需放在该函数中。