演習のために、PHPで小さなMVCフレームワークに取り組んでいます。しかし、PHPは私のControllerクラスを気に入っていないようです。このクラスには、ビューをロードするローダーのインスタンスが含まれています。
abstract class Controller
{
    public $load;
    function __construct($load) 
    {
        $this->load = $load;
    }
    abstract public function index();
}
そこから、すべてのコントローラーのコントローラーをオーバーライドできます。インスタントの場合、私のインデックスコントローラー:
class Index extends Controller
{
    public function index()
    {
        $this->load->view("hello_world");
    }
}
しかし、私がそれを作成するとき:
require 'Controller.php';
require 'Load.php'
require 'controllers/Index.php';
$i = new Index(new Load());
$i->index();
このエラーが発生します:
PHP Fatal error:  Call to a member function view() on a non-object in /var/www/controllers/Index.php on line 7
助けてくれませんか?コンストラクターでロードを設定し、ロードクラスにviewというメソッドがあることはわかっていますが、なぜこのエラーが発生するのですか?また:ちょうど良い測定のために、クラスをロードします
class Load
{
    public function view($filename, $data = null)
    {
        if(is_array($data)) extract($data);
        include ROOT.DS.'views'.DS.$filename.'.php';
    }
}