为什么getcwd()在__destruct()中返回/?

Mic*_*ael 5 php getcwd

我刚刚注意到,如果在__destruct()魔术函数中调用,getcwd()将返回"/",而在任何其他方法中,它返回预期的路径.

你对此有解释吗?

Dan*_*old 2

这是一个 SAPI 行为

“脚本关闭期间调用的析构函数已经发送了 HTTP 标头。脚本关闭阶段的工作目录可能与某些 SAPI(例如 Apache)不同。”

来自http://php.net/manual/en/language.oop5.decon.php

但正如其他答案中提到的,有很多方法可以获取当前的相对路径。如果您在运行时更改了它,请确保记下对象内部的某个位置。