“./file”和“file”相对路径之间有什么区别

时间:2013-11-26 18:59:55

标签: php unix io

我总是看到开发人员使用这两种类型的相对路径来包含外部文件。问题是,“

之间真的有区别吗?
require "./lib/helpers.php"

require "lib/helpers.php"

据我所知,两者都指向同一个文件。但是,在复杂性方面,一个人的表现是否优于另一个?

此致

1 个答案:

答案 0 :(得分:6)

./lib/...将include请求锚定在脚本的当前工作目录中。 PHP将在那里寻找所需的文件,而不是其他地方。如果它不存在,则不执行包含并继续执行。

lib/...允许PHP扫描其包含路径,例如如果你有

include_path=.:/var/lib/php:/foo/bar/baz

然后PHP将按顺序尝试

           ./lib/file.php
/var/lib/php/lib/file.php
/foo/bar/baz/lib/file.php
^^^^^^^^^^^^---- include path component
             ^^^^^^^^^^^^--- include() argument

如果在包含路径中找到匹配项,则扫描将停止并包含该文件。如果扫描用完要包含的候选路径,则扫描会再次停止,但不会执行包含。