正如您所看到的,第一个require_once不会给出弱警告。后者是这样做的,但我不明白为什么。有什么理由为什么会发生这种情况?该文件存在并包含一个类。如果它有用,这是文件结构:
-| Project
-| Anomius
- Anomius.php (This is the included file)
-| Sites
-| Foo
- app.php (This is the file on the image)
正如您所看到的,第一个require_once不会给出弱警告。后者是这样做的,但我不明白为什么。有什么理由为什么会发生这种情况?该文件存在并包含一个类。如果它有用,这是文件结构:
-| Project
-| Anomius
- Anomius.php (This is the included file)
-| Sites
-| Foo
- app.php (This is the file on the image)
默认情况下,PHPStorm只记住变量名称,而不是值。所以如果你开始输入$ano
,它会给你自动完成$anomius
,但它不知道$anomius
实际上包含了什么。
为了PHPStorm了解您的文件是,试试这个:
$anomius = "your_file.php";
/** @define "$anomius" "/absolute/path/to/your/php/file" */
require_once($anomius);
这是没用的:你使用那里的动态变量是有原因的。如果你在上面声明它,在变量中使用变量有什么意义 – user3790897
是的,它是动态的,但至少可以让PHPStorm保持高兴,当脚本运行时,注释仍然会被忽略,所以如果文件url不同,它不会导致任何问题 – elipoultorak
所以你的答案简单:不要使用动态变量作为require_once。 你的答案在某种程度上会让人误解,因为在这种情况下,他只会这样做:require_once('your_file.php')。为什么要把它放到一个变量中,如果你你知道它的价值吗?这是完全废话.. – user3790897
只需禁用PhpStorm产生的警告设置:
在Settings
搜索“未解决包括” 这是下Editor
>Inspections
; PHP
>General
>Unresolved include
并取消选中该框。
我更喜欢这个解决方案,因为这个警告出现在一个自定义的“导入”函数中,该函数接受包含类的相对路径,所以无需在每个地方都放置dirname()和'__FILE__',只需要在该函数中。 –
是 - 因为它是一个变量,值可以随时更改(甚至可以从未知来源(例如数据库)分配)。如果需要,使用常量,因为PhpStorm不跟踪变量值。 – LazyOne
您是否尝试点击“更多...”链接?它可能更具描述性...... –
@LazyOne似乎就是这样。感谢您的信息:) – RemiDG