我有一个包含并在许多文件中使用的类文件(例如:myclass.class.php),每次我不正确使用该类时,PHP 都会返回一个错误,显示文件名和错误所在的行发生了,问题是我总是得到 myclass.class.php 中的行,而不是文件中产生错误的实际行。
我知道我可以覆盖默认的错误处理程序,我创建了这个函数:
function customError($errno, $errstr, $errFile, $errLine){
$error = "- [".date("Y-m-d, H:i:s")."] Error on page ".$_SERVER["SCRIPT_NAME"]." from file $errFile on line $errLine: Error #[$errno] $errstr, ";
$error.="Previous page: ".$_SERVER['HTTP_REFERER'].", IP:".$_SERVER['REMOTE_ADDR']."\n";
}
set_error_handler("customError");
但到目前为止,没有一个变量($errno, $errstr, $errFile, $errLine)
给我生成的文件中的错误行,我总是得到$errLine
类文件的。
有任何想法吗?
谢谢
示例(数字是行号:
在class_file.php里面:
33 public function getRows($result){
34 return mysql_num_rows($result)
35 }
在 another_file.php 里面
101 $rows = $myclass->getRows('this is not a mysql result');
错误类似于:
class_file.php 中的错误,mysql_num_rows() 期望参数 1 是资源;第 34 行
我想在 another_file.php 中获取第 101 行,这实际上是错误的起源。喜欢:
another_file.php 第 101 行出错,在 class_file.php 中执行:mysql_num_rows() 期望参数 1 是资源;第 34 行
谢谢