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

时间:2015-05-22 18:33:49

标签: php require

嗯,我仍然很困惑这是怎么回事。请看以下两行代码:

  

文件夹中 Connection.php 的代码:

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

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

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

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

这让我感到紧张,这两者有什么区别?在我多年的编程中,我从未遇到过这样的问题?我错过了一些观点吗?

  

如果您有任何想要提供的文件,请提供。我想要一个好的   知识的基础而不仅仅是解决问题。

目录结构:

enter image description here

1 个答案:

答案 0 :(得分:4)

../表示目录,与您当前所在的目录进行比较。因此,您的第一行显示&#34;进入一个目录并查找< em> config / constants.php 在那里&#34;。你想在这里使用相对路径的是./(注意单点),它表示你当前的目录。

这与特定的编程无关,它更像是一个文件系统。

您可以将其用作参考:

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

更新(以解释已修改的问题):

与编程有关的东西,特别是PHP,被认为是&#34;当前&#34;目录通常是您最初执行脚本的目录。 在CLI环境下,可能会有所不同,但是如果您通过Web访问脚本,该脚本是您直接访问的PHP文件的位置。例如。如果您将浏览器指向example.com/test.php,那么无论在哪里,test.php&#39;找到的是您目前所在的目录。

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