$controller = 'DefaultController';
require('app/controllers/'.$controller.'.php');
$object = new $controller;
这在new $controller
失败了,但在require
失败了..我真的没有想法
致命错误:第31行的C:\ wamp \ www \ controller \ index.php中找不到类'DefaultController'
app/controllers/DefaultController.php
<?php
namespace App\Controllers;
/**
* DefaultController
*/
class DefaultController
{
public function __construct()
{
# code...
}
public function index() {
}
}
编辑:我添加了命名空间,结果仍然相同
$controller = 'DefaultController';
require('app/controllers/'.$controller.'.php');
$controller = 'App\Controller\\'.$controller;
$object = new $controller;
Fatal error: Class 'App\Controller\DefaultController' not found in C:\wamp\www\controller\index.php on line 33
编辑2:啊是的..它的控制器不是控制器
答案 0 :(得分:3)
因为您使用了错误的命名空间。
尝试
$controller = 'App\Controllers\DefaultController';
答案 1 :(得分:2)
您的班级名称为App\Controllers\DefaultController
,而不是DefaultController
。
require 'app/controllers/DefaultController.php';
$controller = 'App\Controllers\DefaultController';
$object = new $controller;
如何使用自动加载器/ require
语句来解决这个问题取决于你。
答案 2 :(得分:0)
如果您使用命名空间,则在使用 new 创建实例之前,必须先将命名空间前缀添加到类名。
您的类存在于命名空间内,其名称带有命名空间名称。