知道PHP中导入函数的实际代码在哪里中断
例如,我有一个简单的包含文件,它有一个函数:知道PHP中导入函数的实际代码在哪里中断,php,include,Php,Include,例如,我有一个简单的包含文件,它有一个函数: function ViewInclude($file){ require_once $file.'.inc.php'; } require_once 'inc.php'; ViewInclude('header'); 还有另一个使用该函数的文件(比如index.php): function ViewInclude($file){ require_once $file.'.inc.php'; } require_once 'inc
function ViewInclude($file){
require_once $file.'.inc.php';
}
require_once 'inc.php';
ViewInclude('header');
还有另一个使用该函数的文件(比如index.php):
function ViewInclude($file){
require_once $file.'.inc.php';
}
require_once 'inc.php';
ViewInclude('header');
当require
失败时,警告消息如下:
警告:require_once(header.inc.php):无法打开流:
第4行的..../tests/inc.php中没有此类文件或目录
现在,让我们假设,其他一些文件也包括inc.php
文件。当require
失败时,在inc.php的某行出现错误
有没有办法知道触发错误的实际文件和行号?(我指的是错误产生的包含点。在上面的例子中,类似于:在index.php的第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 />';
}
}
函数视图包括($file){
如果(文件_存在($file)){
包括一次(文件);
}否则{
$debug=debug_backtrace()[0];
echo'未能将文件包含在“.$debug['file']”中。
'第'.$debug['line'].'行。
;
}
}