有没有可能让函数自动包含行号和调用该函数的文件,
就像我在函数中调用__LINE__或__FILE__一样,它将使用函数定义所在的行和文件。
但我不想每次都将__LINE__和__FILE__传递给函数。
那么,如果我将它们设置为默认参数,它们是来自函数定义,还是调用它的地方?
发布于 2010-08-02 19:42:51
唯一的方法是使用debug_backtrace(),但顾名思义:它是用于调试的。您的代码应该根据调用的位置/时间在生产环境中而不是附加任何含义或功能。
发布于 2010-08-02 19:42:43
按照你的建议去做似乎行不通。
你可以这样做,但我不确定你为什么要这么做,而且没有更好的方法来实现你想要实现的目标--参见Wrikken's answer。
<?php
function test() {
$backtrace = debug_backtrace();
$last = $backtrace[0];
echo "{$last['function']}() called from {$last['file']} line {$last['line']}\r\n";
}
test();发布于 2016-02-09 03:45:57
虽然为时已晚,但也许有用,你可以使用get_called_class(),作为被调用的类名,而不是像类的参数一样传递。
https://stackoverflow.com/questions/3387320
复制相似问题