php - 我和 phpStorm 的文件路径正确,但在现实世界中是错误的

标签 php path phpstorm relative-path

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/

相关文章:

php - 如何创建搜索,对搜索引擎友好(mod_rewrite htaccess)

php - SQL - 如何获取创建的同一日期的最新数据

Android:如何合并两个形状的路径并去除重叠?

.NET 路径操作库

PhpStorm 查找项目中所有已弃用的用法

php - 使用 PHP Storm 修复重复的 CSS 代码

javascript - 使用 jquery/ajax 在 CodeIgniter 的 Controller 中调用函数

php - WordPress 通过帖子链接更新帖子元数据(自定义字段)

python - 使用 Zipfile 和 Python 获取正确的目录结构

phpstorm - 在PhpStorm中切换帐户