PHP require_once 绝对路径与相对路径(不工作)

PHP require_once Absolute Path vs Relative Path (Not Working)

好吧,我仍然很困惑这怎么可能。看下面两行代码:

Code on Connection.php in class folder:

require_once '../config/constants.php';

require_once dirname(__DIR__).'/config/constants.php';

第二个完全正常,但第一个抛出以下错误:

No such file in ...... on line... in Connection.php

这让我很不安,这两者有什么区别?在我多年的编程中,我从未遇到过这样的问题?我是否遗漏了一些要点?

If you have any documentation you would like to offer then provide. I would like to have a good foundation of knowledge than just solving problem.

目录结构:

../ 表示 parent 目录,与您当前所在的目录相比。因此,您的第一行显示 "go one directory up and look for config/constants.php in there"。你想在这里使用相对路径的是./(注意单点),它表示你的当前目录。

这与具体的编程关系不大,更多的是文件系统问题。

你可以参考这个:

  • 前导/(没有点,只有斜线)表示绝对路径
  • 前导./(单点)表示当前目录
  • 前导../(两个点)表示向上一个目录
  • 无前导点或斜线与单点相同 - 相对于 当前 目录。

更新(考虑到已编辑的问题):

与编程有什么关系,特别是 PHP 是 "current" 目录通常是您最初执行的目录脚本来自。 在 CLI 环境下,这可能会有所不同,但如果您通过 Web 访问脚本,那么您可以 直接 访问的 PHP 文件所在的位置。例如。如果您将浏览器指向 example.com/test.php,那么 'test.php' 所在的位置就是您当前所在的目录。

当然可以通过 chdir() 来改变。