phpStorm 和我都同意这很疯狂,但“错误”的文件路径有效,而“正确”的文件路径失败。基本结构。
|
|------classes(directory)
| |
| |
| Person.php
|
|------include(directory)
| |
| |
| db-connect.inc.php
| autoloader.inc.php
| helper.inc.php
|
|
|index.php
|etc.php
在索引中我使用:(1)
include_once "include/autoloader.inc.php";
include_once "include/db-connect.inc.php";
include_once "include/helper.inc.php";
在 Person.php 中我希望使用:(2)
include_once "../include/autoloader.inc.php";
include_once "../include/db-connect.inc.php";
include_once "../include/helper.inc.php";
但是得到的是:
"Warning: include_once(../include/autoloader.inc.php): failed to open stream:
No such file or directory in C:\xampp\htdocs\dummy\classes\Person.php on line 2"
奇怪(3)
include_once "/../include/autoloader.inc.php";
include_once "/../include/db-connect.inc.php";
include_once "/../include/helper.inc.php";
有效,更奇怪的是(4)也有效
include_once "include/autoloader.inc.php";
include_once "include/db-connect.inc.php";
include_once "include/helper.inc.php";
即使我们处于上一层目录级别!
phpStorm 将 3 和 4 标记为错误(显示“路径 include/autoloader.inc.php 未找到”和“包含表达式未解析”),而 (2)(我认为是“正确的”)得到了漂亮的大绿色勾号,但在调试或通过 http://localhost 直接访问时失败等等
我总是在这些路径问题上挣扎,但为什么 phpStorm 和我都同意,而现实世界却说不!
我想我必须将 $_SERVER['DOCUMENT_ROOT']
放在各处(使用 Storm 而不是手写更容易!),但仍然很痛苦!
最佳答案
这是正确的行为。
您加载的页面位于/
您在其中包含了 /includes
中的文件
现在您包含的文件是 /
中页面的一部分
因此,包含文件中的所有包含内容都被视为来自 /
的亲戚,而不是来自 /includes
等等...
关于php - 我和 phpStorm 的文件路径正确,但在现实世界中是错误的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32804939/