在PHP中,如果我有一个文件,需要一个子目录中的文件,如:
require('directory/file.php');
Run Code Online (Sandbox Code Playgroud)
并且file.php想要在其自己的目录中要求另一个文件,是相对于file.php它的路径还是包含在其中的文件?
如果有意义,它与原始需求文件相关.
所以,如果你有一个名为index的文件,它看起来像这样:
require("./resources/functions.inc.php");
Run Code Online (Sandbox Code Playgroud)
然后functions.inc.php需要看起来像这样:
require("./resources/anotherFunctionsFile.inc.php");
Run Code Online (Sandbox Code Playgroud)
而不是:
require("anotherFunctionsFile.inc.php);
Run Code Online (Sandbox Code Playgroud)
但实际上你应该使用__DIR__常量,它始终是脚本运行的目录; 它让事情变得更容易.
有关__DIR__和其他常量的更多信息:http://php.net/manual/en/language.constants.predefined.php
我希望有所帮助.
它与主脚本相关,在本例中为 A.php。请记住,require()只是将代码插入当前运行的脚本中。
也就是说,
require()从哪个文件调用有关系吗?
不。
如果你想让它变得重要,并做一个require()相对于 B.php 的操作,请使用__FILE__常量(或__DIR__自 PHP 5.3 起),该常量将始终指向该行代码所在的当前文件。
include(dirname(__FILE__)."/C.PHP");
Run Code Online (Sandbox Code Playgroud)
include(dirname(__FILE__).'/include.php');
Run Code Online (Sandbox Code Playgroud)
参考: //php.net/manual/en/language.constants.predefine.php
文件的完整路径和文件名。如果在包含内部使用,则返回包含文件的名称。从 PHP 4.0.2 开始,FILE 始终包含已解析符号链接的绝对路径,而在旧版本中,在某些情况下它包含相对路径。