2013-08-30 33 views
7

Not so awesome picturePHPStorm无法分析变量的路径?

正如您所看到的,第一个require_once不会给出弱警告。后者是这样做的,但我不明白为什么。有什么理由为什么会发生这种情况?该文件存在并包含一个类。如果它有用,这是文件结构:

-| Project 
    -| Anomius 
    - Anomius.php (This is the included file) 
    -| Sites 
    -| Foo 
     - app.php (This is the file on the image) 
+4

是 - 因为它是一个变量,值可以随时更改(甚至可以从未知来源(例如数据库)分配)。如果需要,使用常量,因为PhpStorm不跟踪变量值。 – LazyOne

+0

您是否尝试点击“更多...”链接?它可能更具描述性...... –

+0

@LazyOne似乎就是这样。感谢您的信息:) – RemiDG

回答

2

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

为了PHPStorm了解您的文件是,试试这个:

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

这是没用的:你使用那里的动态变量是有原因的。如果你在上面声明它,在变量中使用变量有什么意义 – user3790897

+0

是的,它是动态的,但至少可以让PHPStorm保持高兴,当脚本运行时,注释仍然会被忽略,所以如果文件url不同,它不会导致任何问题 – elipoultorak

+1

所以你的答案简单:不要使用动态变量作为require_once。 你的答案在某种程度上会让人误解,因为在这种情况下,他只会这样做:require_once('your_file.php')。为什么要把它放到一个变量中,如果你你知道它的价值吗?这是完全废话.. – user3790897

3

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

Settings搜索“未解决包括” 这是下Editor>Inspections; PHP>General>Unresolved include

并取消选中该框。

+0

我更喜欢这个解决方案,因为这个警告出现在一个自定义的“导入”函数中,该函数接受包含类的相对路径,所以无需在每个地方都放置dirname()和'__FILE__',只需要在该函数中。 –