为什么./不被识别为我的php文件中的当前目录?

时间:2017-09-02 00:01:59

标签: php filepath

我有以下文件层次结构:screenshot

并且require_once以某种方式不起作用(警告:require_once(./ AutentificadorJWT.php):无法打开流:第2行的C:\ xampp \ htdocs \ clases \ usuario.php中没有此类文件或目录) 据我所知./指向当前目录。现在以下工作: require_once'AutntificadorJWT.php'; 为什么./不起作用?

1 个答案:

答案 0 :(得分:1)

当您拥有复杂的代码层次结构时,很难知道当前目录是哪个目录。如果您想拥有一个恒定的参考点,那么您可以使用$_SERVER['DOCUMENT_ROOT']来定义计算机上代码的基础。所以......

require_once $_SERVER['DOCUMENT_ROOT'].'/base.php';

将在项目的根目录中使用base.php。我遇到的一个问题是,单元测试并不总是设置了很多$_SERVER个变量。

或者,您可以使用__DIR__这是当前文件的目录。因此,如果在您的情况下,您将其更改为...

require_once __DIR__.'/AuthentifacdorJWT.php';

这将始终相对于您使用的文件的目录。