PHP获取调用本函数方法的位置信息
在有些时候我们需要在函数里知道是哪个文件哪个位置调用了自己,主要函数“debug_backtrace()”
参考一个日志记录函数
//记录日志(内容[文本/数组],文件夹,小标题,是否完整日志) function __log($msg,$type='base',$title='常规日志',$with_all=false){ $dir = __DIR__ . DIRECTORY_SEPARATOR .'data' . DIRECTORY_SEPARATOR . 'log' . DIRECTORY_SEPARATOR . $type . DIRECTORY_SEPARATOR . date('Y-m'); $file = $dir . DIRECTORY_SEPARATOR . date('d') . '.txt'; if(!is_dir($dir) && !mkdir($dir,0777,true)){ return false; } if(is_array($msg)){ $msg = json_encode($msg,JSON_UNESCAPED_UNICODE); } $all = ''; if($with_all){ $deb = debug_backtrace(); $lines = []; foreach ($deb as $value) { $lines[] = $value['file'] . '(' . $value['line'] . ':' . $value['function'] .')'; } $all = implode(PHP_EOL,$lines) . PHP_EOL; } $content = '['.date('H:i:s').'] [' . $title . ']' . PHP_EOL . $msg . PHP_EOL . $all; return file_put_contents($file,$content,FILE_APPEND) > 0; }
如果第四个参数给true的话则会记录哪个文件哪个位置调用的__log函数。
调用
__log('测试日志内容','test','退款列表',true)
效果