PHPで関数呼び出し元から行を取得する方法


  1. debug_backtrace関数を使用する方法: debug_backtrace関数は、関数の呼び出し元の情報を配列として返します。以下のコードは、現在のファイルと行番号を取得する例です。
function getCallerLineNumber() {
    $trace = debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT, 2);
    if(isset($trace[1]['file']) && isset($trace[1]['line'])) {
        return "Called from file: " . $trace[1]['file'] . " on line: " . $trace[1]['line'];
    }
    return "Line number not available.";
}
// 使用例
echo getCallerLineNumber();
  1. Exceptionを使用する方法: PHPのExceptionをキャッチすることで、エラーが発生した行番号を取得できます。以下のコードは、例外をスローしてキャッチし、エラーが発生した行番号を表示する例です。
function throwError() {
    throw new Exception('Error occurred.');
}
try {
    throwError();
} catch (Exception $e) {
    echo "Error occurred on line: " . $e->getLine();
}

これらの方法を使用することで、関数の呼び出し元から行番号を取得することができます。エラー処理やデバッグの目的に応じて、適切な方法を選択してください。