连接超时On Class Extend

时间:2015-11-04 00:16:44

标签: php model-view-controller controller

我对PHP很新,所以我确信我做错了,但我的代码非常简单,我似乎无法看到导致超时错误的原因。

的index.php

include_once ("./inc/controller/controller.php");
$controller = new controller();
$controller->index();

Controller.php这样

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.php

class Common extends controller{
   // I don't even have code in here yet
}

查看我的日志,我看到了错误

Class 'controller' not found in /inc/class/class.common.php 

为什么它找不到控制器。

1 个答案:

答案 0 :(得分:0)

扩展类并且不定义构造函数时,它将从父类继承。因此,当您创建Common inside controller的实例时,它本身会尝试创建Common的实例。那么这个实例也会尝试创建一个,依此类推,无限循环。

您可以简单地覆盖Common中的构造函数。空的会做:

class Common extends controller{
   public function __construct() {
   }
}

但是想要一个你已经扩展的对象的单独实例是很奇怪的。