0

ここでの考え方は、ロギングとデバッグの目的でメソッドを作成することであり、そのメソッドに関連する「マジック定数」を渡す必要はありません。

事実上、私は次のようなメソッド定義を使用してこれを達成しようとしています:

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

メッセージの呼び出しが 2 番目のファイルで発生したとき - これは、この時点で明らかなように、意図した実装ではありません。もちろん、呼び出し時にこれらの魔法の定数を「デバッグ」メソッドに渡すこともできますが、可能であれば不要なコードを排除したいと考えています。

4

1 に答える 1

0

このように関数を使用しますdebug_backtrace

function Debug($Message)
{
    $backtrace =  debug_backtrace();
    echo($backtrace[0]['file'] .'(' . $backtrace[0]['line']  . ') :: ' . $Message);
}
于 2016-11-30T21:01:40.820 に答える