我试图自己加载一个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中,不同的库被调用。我希望在我的程序中实现类似的功能。 感谢。
答案 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();