我对PHP很新,所以我确信我做错了,但我的代码非常简单,我似乎无法看到导致超时错误的原因。
include_once ("./inc/controller/controller.php");
$controller = new controller();
$controller->index();
include_once('./inc/class/class.common.php');
class controller {
public function __construct(){
$this->common = new Common; // This Line Causes the Error
echo "Everything Loaded"; // This only executes when above line is gone
}
public function index(){
die("done");
}
}
class Common extends controller{
// I don't even have code in here yet
}
查看我的日志,我看到了错误
Class 'controller' not found in /inc/class/class.common.php
为什么它找不到控制器。
答案 0 :(得分:0)
扩展类并且不定义构造函数时,它将从父类继承。因此,当您创建Common inside controller的实例时,它本身会尝试创建Common的实例。那么这个实例也会尝试创建一个,依此类推,无限循环。
您可以简单地覆盖Common中的构造函数。空的会做:
class Common extends controller{
public function __construct() {
}
}
但是想要一个你已经扩展的对象的单独实例是很奇怪的。