我有一个名为UserController的类,它通过对UserController.php的ajax调用在其自己的声明之上实例化。它按预期工作。
<?php
new UserController();
class UserController{
//constructor
//methods
}
?>
现在我想为我的所有控制器提供一些常用功能,并通过扩展baseController来实现。
<?php
//include BaseController
new UserController();
class UserController extends BaseController{
//constructor
//methods
}
?>
但是,我在尝试实例化时收到此消息:
致命错误:在C:\ xampp \ htdocs \ project \ controllers \ UserController.php中找不到类'UserController'
如果我将实例化移动到声明之后。一切正常。
<?php
//include BaseController
class UserController extends BaseController{
//constructor
//methods
}
new UserController();
?>
有人可以对此有所了解吗?
为什么实例化UserController类需要在这种情况下声明之后完成,但如果没有扩展另一个类,可以在声明之前完成吗?
答案 0 :(得分:1)
来自文档:
除非使用自动加载,否则必须在使用之前定义类。如果类扩展另一个类,则必须在子类结构之前声明父类。此规则适用于继承其他类和接口的类。
且include
未自动加载...因此存在您的问题