我一直在使用以下命令返回方法的文件路径和行号
echo (__METHOD__) . "() - ln : " . (__LINE__) . "<br />";
我真的想把它更新为一个类(比如comment.php)
class comment
{
public static function show()
{
echo (__METHOD__) . "() - ln : " . (__LINE__) . "<br />";
}
}
我可以在我的开发中的任何地方打电话
if(COMMENT) comment::show();
让它返回调用代码的文件路径。我尝试了一些变种,但我遗漏了一些东西。你能帮忙吗?
感谢
答案 0 :(得分:6)
结帐debug_backtrace - 这可以为您提供有关您需要的来电者的信息。
例如:
<?php
class comment
{
public static function show()
{
$trace=debug_backtrace();
print_r($trace);
}
public function test()
{
comment::show();
}
}
$comment=new comment();
$comment->test();
将产生此输出
Array
(
[0] => Array
(
[file] => /tmp/test.php
[line] => 13
[function] => show
[class] => comment
[type] => ::
[args] => Array()
)
[1] => Array
(
[file] => /tmp/test.php
[line] => 19
[function] => test
[class] => comment
[object] => comment Object ()
[type] => ->
[args] => Array()
)
)
第一个元素显示调用者详细信息 - 根据您的喜好对其进行格式化,如果有帮助则显示整个调用堆栈!
答案 1 :(得分:0)
尝试:
echo __FILE__;