例如,我有一个简单的包含文件,它有一个函数:
function ViewInclude($file){
require_once $file.'.inc.php';
}
另一个文件(比如index.php)使用函数:
require_once 'inc.php';
ViewInclude('header');
当require
失败时,警告信息为:
警告:require_once(header.inc.php):打开流失败:在..../tests/inc.php第4行
中没有这样的文件或目录
现在,让我们说,其他一些文件也包括inc.php
文件。当require
失败时,错误是at inc.php在某些行。
是否有办法知道触发错误的实际文件和行号?(我的意思是包括错误产生的地方。在上面的例子中,类似于:at index.php at line 62)
这样做可能会有所帮助:
function ViewInclude($file){
if (file_exists($file)) {
include_once($file);
} else {
$debug = debug_backtrace()[0];
echo 'Failed to include file in '.$debug['file'].
' at line '.$debug['line'].'<br />';
}
}
您可以使用debug_backtrace
函数来查看脚本如何达到这一点的历史记录。使用try
/catch
块或set_error_handler
来捕获错误