我总是看到开发人员使用这两种类型的相对路径来包含外部文件.问题是,"真的有区别"
require "./lib/helpers.php"
Run Code Online (Sandbox Code Playgroud)
和
require "lib/helpers.php"
Run Code Online (Sandbox Code Playgroud)
据我所知,两者都指向同一个文件.但是,在复杂性方面,一个表现优于另一个吗?
问候
./lib/...
将include请求锚定在脚本的当前工作目录中.PHP将在那里寻找所需的文件,而不是其他地方.如果它不存在,则不执行包含并继续执行.
lib/...
允许PHP扫描其包含路径,例如,如果你有
include_path=.:/var/lib/php:/foo/bar/baz
Run Code Online (Sandbox Code Playgroud)
然后PHP将按顺序尝试
./lib/file.php
/var/lib/php/lib/file.php
/foo/bar/baz/lib/file.php
^^^^^^^^^^^^---- include path component
^^^^^^^^^^^^--- include() argument
Run Code Online (Sandbox Code Playgroud)
如果在包含路径中找到匹配项,则扫描将停止并包含该文件.如果扫描用完要包含的候选路径,则扫描会再次停止但不执行包含.