知道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'].'行。
; } }