PHP:为什么我的`set_include_path()`在指向一个目录时不起作用?

mOr*_*off 0 php require-once set-include-path

有一个小库,我正在尝试插入我的项目.这个lib有一些包含并且需要跨类,所以我试图为所有工作设置一个包含路径.

当试图在兄弟分支上设置包含路径时,我遇到了打嗝.

对于参考点,require('/../my/test.php')工作正常.

那样做

set_include_path('/../');
require_once('my/test.php');
Run Code Online (Sandbox Code Playgroud)

但是一旦我尝试

set_include_path('/../my/');
require_once('test.php');
Run Code Online (Sandbox Code Playgroud)

我明白了:

警告:require_once(one.php):无法打开流:没有这样的文件或目录...

我错过了什么?

Dun*_*zzz 5

启动您的路径与/手段看在根目录下,所以/../在技术上是一个目录上面的根目录.

要设置当前位置的父目录的包含路径,您只需要../.为了使代码更具可移植性,我建议将其组合起来dirname(__FILE__)以获取当前目录的绝对路径.

IE:

set_include_path(dirname(__FILE__) . '/../my/');
Run Code Online (Sandbox Code Playgroud)

请注意,/在该示例中需要前面的内容,因为dirname()不返回尾部斜杠