Получить строку кода и файл, который выполняет текущую функцию в PHP?
Представьте, что у меня следующая ситуация:
File1.php
<?php
include("Function.php");
log("test");
?>
Function.php
<?php
function log($msg)
{
echo "";
}
?>
Я хочу изменить функцию журнала, чтобы она производила следующее:
test (file: File1.php, line number: 3)
Итак, есть ли способ получить имя файла и номер строки кода, который выполнял текущую функцию в PHP?
EDIT for backlog usage comments: Когда я использую отставание в моем объектно-ориентированном способе программирования, у меня возникает следующая ситуация.
Index.php
<?php
include("Logger.static.php");
include("TestClass.class.php");
new TestClass();
?>
TestClass.class.php
<?php
class TestClass
{
function __construct()
{
Logger::log("this is a test log message");
}
}
?>
Logger.static.php
<?php
class Logger
{
static public function log($msg)
{
$bt = debug_backtrace();
$caller = array_shift($bt);
echo $caller['file'];
echo $caller['line'];
}
}
?>
Этот пример вернется в виде файла & quot; Index.php & quot; и как строка номер 4, это где класс инициируется. Тем не менее, он должен вернуть файл TestClass.class.php и номер строки 6. Есть идеи, как это исправить?