如何使用__dir__?

新手上路,请多包涵

我想使用 __dir__

但是,我找不到任何关于如何设置它的好教程。我在 Dropbox 中有我的 htdocs。

它像这样工作吗?

  define(__DIR___, 'd:documents/dropbox/yolo/swag/htdocs/myproject/test/newtest/
 testphp/test_new/testincludes/1/new_folder/')

那是我的项目所在的目录,它有子文件夹。我想将一个文件包含到父文件夹中的另一个文件中。

然后我应该输入:

  include'__DIR__/warlock.php';

还是我必须输入这样的内容?

  include '___DIR__/wow/newb/guidesfornabz/classes/casters/warlock.php';

原文由 JosefPP 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 392
1 个回答

您可以使用 __DIR__ 来获取当前脚本的目录。它仅在 PHP 5.3 之后才出现,与使用 dirname(__FILE__) 相同。在大多数情况下,它用于从包含的文件中包含另一个文件。

考虑在名为 inc 的目录中有两个文件,这是我们项目目录的子文件夹,其中 index.php 文件所在的位置。

 project
├── inc
│   ├── file1.php
│   └── file2.php
└── index.php

如果我们做 include "inc/file1.php"; 来自 index.php 它将起作用。但是,从 file1.php 到包含 file2.php 我们必须 相对于 index.php 进行包含,而不是从 file1.php (所以, include "inc/file2.php"; ) . __DIR__ 修复了这个问题,所以从 file1.php 我们可以这样做:

 <?php
include __DIR__ . "/file2.php";

要回答您的问题:包含文件 warlock.php 即在您包含的文件的上层目录中,这是最好的解决方案:

 <?php
include __DIR__ . "/../warlock.php";

原文由 morganbaz 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏