获取在PHP中执行当前函数的代码行和文件?
2022-08-30 08:32:43
想象一下我有以下情况:
文件1.php
<?php
include("Function.php");
log("test");
?>
功能.php
<?php
function log($msg)
{
echo "";
}
?>
我想更改日志函数,以便它产生以下内容:
测试 (文件: 文件1.php,行号: 3)
那么,有什么方法可以获得在PHP中执行当前函数的代码的文件名和行号吗?
编辑积压工作使用注释:当我在面向对象的编程方式中使用积压工作时,我遇到以下情况。
索引.php
<?php
include("Logger.static.php");
include("TestClass.class.php");
new TestClass();
?>
测试类.class.php
<?php
class TestClass
{
function __construct()
{
Logger::log("this is a test log message");
}
}
?>
记录器.静态.php
<?php
class Logger
{
static public function log($msg)
{
$bt = debug_backtrace();
$caller = array_shift($bt);
echo $caller['file'];
echo $caller['line'];
}
}
?>
此示例将作为文件“Index.php”返回,并作为第 4 行返回,这是启动类的位置。但是,它应该返回文件TestClass.class.php和行号6。任何想法如何解决这个问题?