如何找到调用我的函数的脚本的文件名?
例如,
function sthing() {
echo __FILE__; // echoes myself
echo __CALLER_FILE__; // echoes the file that called me
}
发布于 2016-03-31 02:46:35
尝试以下代码:
$key = array_search(__FUNCTION__, array_column(debug_backtrace(), 'function'));
var_dump(debug_backtrace()[$key]['file']);
发布于 2009-12-20 21:58:38
除了Pascal Martins的建议之外,您还可以安装PECL扩展APD并使用类似apd_callstack()的东西(引用示例)
// returns an array containing an array of arrays.
Each array appears to contain:
[0] = function name
[1] = filename that contains function
[2] = *calling* line number in *calling* file
[3] = An array which is usually empty
但由于这是一个PECL扩展,可能会干扰Zend Optimizer,您最好使用debug_backtrace()。
发布于 2021-05-08 16:43:08
这将打印出file_name:line
function myFunction() {
$backfiles = debug_backtrace();
echo $backfiles[0]['file'] . ':' . $backfiles[0]['line'];
}
https://stackoverflow.com/questions/1935867
复制相似问题