可能重复:
How to find out where a function is defined?
included php file to know it's file name?
我可以在PHP中获取函数声明开头的文件名和行号吗?
说,我有以下代码:
1. /**
2. * This function shows the foo bar.
3. */
4. function foo_bar($subject) {
5. echo "Foo bar:\n";
6. if ($subject == "none") {
7. trigger_error("Wrong argument given to 'foo_bar()' in ... on line ....", E_USER_WARNING);
8. }
9. ...
10. }
当我调用foo_bar("none")
时,函数必须抛出这样的错误:
警告:第4行/ home / web / mcemperor中的'foo_bar()'错误参数。
我可以检索函数声明开头的文件名和行号吗?
答案 0 :(得分:12)
您正在寻找ReflectionFunction。
$r = new ReflectionFunction('foo_bar');
$file = $r->getFileName();
$startLine = $r->getStartLine();
就是这么简单......它适用于任何已定义的函数,无论你传递给构造函数参数的函数是什么。
答案 1 :(得分:0)
$backtrace = debug_backtrace();
$line = $backtrace[0]['line'];
$file = $backtrace[0]['file'];
答案 2 :(得分:0)
可以使用PHP异常找到函数名称,这对于错误触发更有意义:http://www.php.net/manual/en/exception.gettrace.php