3

私はこれを調べましたが、答えにはおそらく の使用が含まれていることを知っていますがdebug_backtrace()、それを使用する方法や正確に何をするかについて苦労しています。

基本的に、これが index.php の場合:

<?php
//some code
//some more code

require "functions.php";

print_line();

//some code

print_line();
?>

そして functions.php は次のとおりでした:

<?php
function print_line(){
    $line="[line that this function was called at]";
    print "This function was called from line $line of index.php<br />";
}
?>

$line出力が次のようになるように設定する正しい方法は次のとおりです。

This function was called from line 7 of index.php
This function was called from line 11 of index.php
4

2 に答える 2

12

debug_backtrace()には、0 (最も近い) からインデックス付けされた現在のスコープまでのすべてのネストされた関数呼び出しが含まれます。

したがって、 print_line()が呼び出された行が必要な場合は、次のようにします。

<?php
function print_line(){
    $backtrace = debug_backtrace();

    $line=$backtrace[0]['line'];
    print "This function was called from line $line of index.php<br />";
}

またはPHP 5.4以降:

$line=debug_backtrace()[0]['line'];
于 2013-08-03T20:59:58.810 に答える
0

以下のコードを使用して現在の行を取得できます。それをパラメーターとして print_line() 関数に渡すだけです。

print_line(__line__);
于 2013-08-03T20:54:11.410 に答える