PHP查看函数定义位置是在哪个文件及行数
function function_dump($funcname){ try { if(is_array($funcname)) { $func = new \ReflectionMethod($funcname[0], $funcname[1]); $funcname = $funcname[1]; } else { $func = new \ReflectionFunction($funcname); } } catch (\ReflectionException $e) { echo $e->getMessage(); return; } $start = $func->getStartLine() - 1; $end = $func->getEndLine() - 1; $filename = $func->getFileName(); echo "function $funcname defined by $filename($start - $end)\n"; }
此处所有的类“ReflectionMethod”都加了“\”表示在存在命名空间调用的情况下使用全局命名空间里的类,如果程序中不存在命名空间调用,则可以去掉这个"\"。
function_dump('a'); function_dump(array('b', 'f')); $b = new b(); function_dump(array($b, 'f'));
上面实例包含一般函数和类函数的查找。