47

PHP脚本是否可以返回调用某些命令的行号?我无法描述我想要的东西,所以也许是一个例子。

我有多次调用 MySQL 的 PHP 代码。第 49 行是:

$resultDevice = mysql_query("Some SQL;") or die ("MySQL-Error in settingsU line 49: " . mysql_error());

我手动编写的文本“第 49 行”。如果我更改我的代码,是否可以更新这个数字“49”?这将使我的生活更容易调试。当然,我可以将其他一些特定于行的文本放入die中,但是在文本编辑器中更容易找到行。

4

3 回答 3

108

您可以为此使用魔术常数 __LINE__

echo  __LINE__;

将显示该语句在文件中的行号。

于 2013-03-28T14:33:02.187 回答
9

如果你想要一个你可以使用的跟踪(对于 PHP 4 >= 4.3.0:)

function error_report_function($error) 
{
$dbgt=debug_backtrace();
return "$error in {$dbgt[1][file]} on line {$dbgt[1][line]}";
}

您可以debug_backtrace为此使用,否则总是通过该行(使用__LINE__

于 2013-03-29T02:06:24.457 回答
1

你可以使用这样的东西:

function throwSQLError($file, $line, $error) {
    return "MySQL-Error in " . $file . " on line " . $line . ": " . $error;
}
$result = mysql_query("Some SQL;") or die (throwSQLError(__FILE__, __LINE__, mysql_error()));

这为您提供了一个动态函数来抛出您可以多次使用的错误。

未经测试,仅在原始编辑器中编写。

于 2020-09-30T06:06:22.917 回答