【发布时间】:2013-02-04 00:23:18
【问题描述】:
我刚刚注意到,如果在 __destruct() 魔术函数中调用 getcwd() 会返回“/”,而在任何其他方法中它会返回预期的路径。
你对此有解释吗?
【问题讨论】:
-
我用 PHP 5.3.10 运行它。
我刚刚注意到,如果在 __destruct() 魔术函数中调用 getcwd() 会返回“/”,而在任何其他方法中它会返回预期的路径。
你对此有解释吗?
【问题讨论】:
这是一种 SAPI 行为
“脚本关闭期间调用的析构函数已经发送了 HTTP 标头。脚本关闭阶段的工作目录可能与某些 SAPI(例如 Apache)不同。”
来自http://php.net/manual/en/language.oop5.decon.php
但正如其他答案中提到的,有很多方法可以获取当前的相对路径。如果您在运行时更改了它,请务必记下对象内部的某处。
【讨论】:
有一个old bug。
你能用__FILE__代替getcwd()吗?
【讨论】: