想象我有以下情况:获取在PHP中执行当前函数的代码行和文件?
File1.php
<?php
include("Function.php");
log("test");
?>
Function.php
<?php
function log($msg)
{
echo "";
}
?>
我想更改日志功能,因此,它会产生如下:
测试(文件:File1.php,行号:3)
那么,有什么方法可以获取在PHP中执行当前函数的代码的文件名和行号?
编辑积压使用评论: 当我使用我的面向对象的编程方式积压我有以下情况。
的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'];
}
}
?>
这个例子将返回为文件 “的index.php” 和作为4号线,这是课程开始的地方。但是,它应该返回文件TestClass.class.php和行号6.任何想法如何解决这个问题?
其实,有一个问题。我以面向对象的方式进行编码,并且它正在返回行和调用调用该函数的对象的脚本。相反,它应该给我包含的类的名称和该类文件中的行。任何想法? – Tom 2009-08-09 23:53:11
你需要在这里更具体。你能告诉我你得到了什么以及你的期望吗? – 2009-08-10 07:32:55
你好Lior Cohen,你能查看我编辑过的原文吗?我在那里详细解释了一切。谢谢! – Tom 2009-08-11 10:49:35