有什么方法可以将PHP魔术常数作为功能默认值降低



这里的想法是创建一种用于记录和调试目的的方法,不需要通过该方法通过该方法相关的'魔术常数'。

有效地,我正在尝试使用类似方法定义来实现此目的:

function Debug($Message,$File=__FILE__,$Line=__LINE__)
{
...
}

我遇到的问题是,如果我在文件"调试"以外的文件中定义了上述方法,则最终将文件和行中的列表定义为中,而不是在文件中定义,而不是我正在"调试"。

考虑以下文件集:

debugging.php

<?
function Debug($Message,$File=__FILE__,$Line=__LINE__)
{
    echo("$File ( $Line ) :: $Message");
}
?>

testing.php

<?
Debug("Some message");
?>

输出:

Debugging.php ( 1 ) :: Some message

当消息的调用发生在第二个文件中时 - 到目前为止应该清楚的是,这不是预期的实现。当然,我可以在调用时通过"调试"方法那些魔术常数,但是如果可能的话,我希望消除不必要的代码。

您将使用该函数debug_backtrace So。

function Debug($Message)
{
    $backtrace =  debug_backtrace();
    echo($backtrace[0]['file'] .'(' . $backtrace[0]['line']  . ') :: ' . $Message);
}

最新更新