【问题标题】:How to return a line number in a PHP script如何在 PHP 脚本中返回行号
【发布时间】:2013-03-28 14:17:23
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: php debugging


    【解决方案1】:

    您可以为此使用magic constant __LINE__

    echo  __LINE__;
    

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

    【讨论】:

    • 非常感谢 - 它直接引导我找到其他一些不错的常量。
    【解决方案2】:

    如果你想要一个你可以使用的跟踪(对于 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__

    【讨论】:

      【解决方案3】:

      你可以这样使用:

      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-11-17
        • 1970-01-01
        • 1970-01-01
        • 2015-10-18
        • 1970-01-01
        相关资源
        最近更新 更多