遇到奇怪的问题,在 Windows 环境下,你猜 dirname(‘/’) 返回虾米?

string(1) “\”

Linux 下呢?

string(1) “/”

换个参数,dirname(‘/home/leakon/sofav.php’),如果你认为上面的不同,是因为 Windows 的目录分隔符是反斜线 “\”,那下面的结果如何解释?

Windows: string(12) “/home/leakon”

Linux: string(12) “/home/leakon”

再换参数,dirname(‘D:\Leakon\Code\sofav.php’)

Windows: string(14) “D:\Leakon\Code”

Linux: string(1) “.”

奇怪吧,为什么有这么大区别呢?

现在还不太清楚,提供一下我的测试环境:

Windows 下存在 D:\Leakon\Code\sofav.php 这个文件,Linux 下存在 /home/leakon/sofav.php。

等搞明白回来顶,看到的,用到的,留心记一下吧。

顺便说下,这个问题,是用单元测试发现的。

我知道很多开发者都懂单元测试,我也知道很多开发者并没有切身去实践单元测试。