点斜杠对 PHP 包含调用有什么作用?

2022-08-30 12:26:29

一个。这是做什么的?

require ("./file.php");

B.与此相比?

require ("file.php");

它不是 up-one-directory.. 这将是)

require ("../file.php");

答案 1

./当前目录。它在很大程度上与 just 相同,但在许多情况下(包括这个),它不会检查 PHP 可能查找文件的任何标准位置,而是检查当前目录。file.php

PHP 文档中(请注意最后一句):

首先在相对于当前工作目录的每个include_path条目中查找要包含的文件,然后在当前脚本的目录中查找。例如,如果您include_path是库,当前工作目录是 /www/,您包含 include/a.php并且该文件中包含“b.php”,则 b.php 首先在 /www/libraries/ 中查找,然后在 /www/include/ 中查找。如果文件名以 ./ 或 .. 开头。/,它仅在当前工作目录中查找。


答案 2

第一个版本强制内部机制包含相对于...直接执行文件。例如,您有

索引.php

// directly executed script (php -f index.php or from a browser)
include 'second.php';

第二.php

// This is included relatively to index.php
// Actually, it is first searched relatively to include_path, then relatively
// to index.php
include './third.php';

第三.php

// This is included relatively to second.php ONLY. It does not search
// include_path
return "foo";

推荐