从Parent类PHP内部加载类扩展

时间:2011-08-20 13:53:43

标签: php class parent extend

我试图自己加载一个php类的扩展。我不明白为什么它没有加载。是否可以从自己加载类扩展?

以下是我的意思的代码示例。

class Class_B{
     public function hi(){
          echo('Hello world!');
     }    
}

class Class_D extends parent{
     public function Class_D(){
          //--> Here is the problematic line
          $this->class_b->hi();
     }    
}

class parent{
     public $class_b;

     public function __construct(){
          $this->class_b = new Class_B;
          new Class_D();
     }
}

此代码附带此错误。

  

在非对象中调用成员函数hi()   /path/to/your/application/test.php on   第59行

我需要使用相同的语法调用Class_B :: hi()函数。我读了很多,但我找不到我需要的东西。在CodeIgniter中,不同的库被调用。我希望在我的程序中实现类似的功能。 感谢。

2 个答案:

答案 0 :(得分:4)

您绝对不想在父构造函数中调用new Class_D()

我认为你要做的是:

class parent {
     protected $b;

     public function __construct() {
          $this->b = new Class_B();
     }
}

class Class_D extends parent {
    function __construct() {
       parent::__construct();

       $this->b->hi();
   }
}

答案 1 :(得分:1)

使hi()静态:

class Class_B{

     public static function hi(){
          echo('Hello world!');
     }

}

Class_B::hi();