【发布时间】:2010-09-13 11:29:17
【问题描述】:
假设我们有index.php,它存储在/home/user/public/www 中,index.php 从文件inc/app/Foo.class.php 调用类Foo->bar()。
我希望 Foo 类中的 bar 函数在这种情况下获取路径 /home/user/public/www ——我不想使用全局变量、传递变量等。
【问题讨论】:
假设我们有index.php,它存储在/home/user/public/www 中,index.php 从文件inc/app/Foo.class.php 调用类Foo->bar()。
我希望 Foo 类中的 bar 函数在这种情况下获取路径 /home/user/public/www ——我不想使用全局变量、传递变量等。
【问题讨论】:
找到了。 getcwd().
【讨论】:
可以使用debug_backtrace查看调用路径,获取调用该函数的文件。
一个简短的例子:
class Foo {
function bar() {
$trace = debug_backtrace();
echo "calling file was ".$trace[0]['file']."\n";
}
}
【讨论】:
getcwd() 获取当前工作目录
可以通过 3rd 方模块出于各种原因更改它,包括甚至您自己的代码,方法是发出 chdir()。
debug_backtrace() 正如 Devon 建议的那样,是您正在寻找的答案。
【讨论】:
这不是让你更容易找到运行脚本的目录吗?
$dir=dirname($_SERVER["SCRIPT_FILENAME"])
【讨论】: