这里的想法是创建一个用于记录和调试目的的方法,它不需要向所述方法传递相关的“魔术常量”。
实际上,我正在尝试使用如下方法定义来实现这一点:
function Debug($Message,$File=__FILE__,$Line=__LINE__)
{
...
}
我遇到的问题是,如果我在我正在“调试”的文件之外的文件中定义上述方法,我最终会得到文件中的文件和定义方法的文件中的行,而不是我我正在“调试”。
考虑以下文件集:
调试.php
<?
function Debug($Message,$File=__FILE__,$Line=__LINE__)
{
echo("$File ( $Line ) :: $Message");
}
?>
测试.php
<?
Debug("Some message");
?>
输出:
Debugging.php ( 1 ) :: Some message
当消息的调用发生在第二个文件中时——正如此时应该清楚的那样,这不是预期的实现。我当然可以在调用时将那些魔术常量传递给“调试”方法,但如果可能的话,我希望消除不必要的代码。