为了账号安全,请及时绑定邮箱和手机立即绑定

根据psr-0规则编写的,回调类无法自动载入,怎么解决?

代码如下:
index.php

<?php
use App\Route;
use App\Controller\HomeController;
define('BASEDIR', __DIR__);
include BASEDIR . '/App/Loader.php';
spl_autoload_register('\\App\\Loader::autoload');
HomeController::index();
call_user_func('HomeController::index');



App\Controller\HomeController.php

<?php
namespace App\Controller;
class HomeController{
    public static function index(){
        echo __METHOD__;
    }
}

App\loader.php

<?php
namespace App;
class Loader{
    public static function autoload($class){
        $class = str_replace('\\', '/', $class);
        require BASEDIR . '/' .$class . '.php';
    }
}

运行结果:
App\Controller\HomeController::index
Warning:  require(D:\wwwroot\htdocs\dd/HomeController.php): failed to open stream: No such file or directory in D:\wwwroot\htdocs\dd\App\Loader.php on line 10

Fatal error:  require(): Failed opening required 'D:\wwwroot\htdocs\dd/HomeController.php' (include_path='.;C:\php\pear') in D:\wwwroot\htdocs\dd\App\Loader.php on line 10我知道写成call_user_func('App\Controller\HomeController::index');是可以解决问题的。
但是采用简单的call_user_func('HomeController::index');写法,应该怎么解决

正在回答

2 回答

index.php没定义BASEDIR

0 回复 有任何疑惑可以回复我~

index.php没定义BASEDIR

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

根据psr-0规则编写的,回调类无法自动载入,怎么解决?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信