PHP - 抓住引发错误的代码

时间:2014-03-28 04:31:03

标签: php error-handling

我希望能够获取发生NOTICE错误的实际代码行(不是数字,代码行文本)。有没有办法实现这个目标?我似乎无法找到一个函数,它将返回当前正在运行的脚本中某行#的代码。

1 个答案:

答案 0 :(得分:1)

假设PHP脚本有权读取当前文件,您可以这样做:

<?php

echo $b; // Undefined variable

$errors = error_get_last();

$errorMessage = $errors['message'];    
$pathToScript = $errors['file'];
$line = $errors['line'];

$arrayOfLines = file(__FILE__);

echo "The error message was: '$errorMessage occured in $pathToScript'";
echo "The line of code that caused the error is: \n";

highlight_string($arrayOfLines[$line-1]);

输出:

  

错误消息是:&#39;未定义的变量:b出现在/path/to/script.php'

     

导致错误的代码行是:echo $b;