Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP spl_自动加载:如何确定自动加载函数请求程序_Php_Spl Autoload Register_Spl Autoloader - Fatal编程技术网

PHP spl_自动加载:如何确定自动加载函数请求程序

PHP spl_自动加载:如何确定自动加载函数请求程序,php,spl-autoload-register,spl-autoloader,Php,Spl Autoload Register,Spl Autoloader,有没有办法让spl_autoload_register注册的函数知道调用它的源文件/类/方法?我希望能够在找不到类时输出有用的错误,以便知道需要更新哪个源文件。例如: spl_autoload_register(function($className) { $classFile = 'include/' . $className . '.php'; if (!is_readable($classFile)) { echo 'Could not load '

有没有办法让spl_autoload_register注册的函数知道调用它的源文件/类/方法?我希望能够在找不到类时输出有用的错误,以便知道需要更新哪个源文件。例如:

spl_autoload_register(function($className)
{
    $classFile = 'include/' . $className . '.php';
    if (!is_readable($classFile))
    {
        echo 'Could not load ' . $className . ' requested by ' . $source; 
        // how to figure out $source -----------------------------^^
        return false;
    }

    include $classFile;
    return false;
}

这就是a的工作。它向您显示了导致错误的事件链(并可以提供类、行号等详细信息)

这就是a所做的。它向您显示导致错误的事件链(并可以提供类、行号等详细信息)

尝试var dumping
debug\u backtrace()
查看它返回的数组以及它是否有帮助

spl_autoload_register(function($className)
{
    var_dump(debug_backtrace());

    ...

尝试使用var dumping
debug\u backtrace()
查看它返回的数组以及它是否有帮助

spl_autoload_register(function($className)
{
    var_dump(debug_backtrace());

    ...