PHP重写错误


PHP override error

我试图覆盖一个方法,但我得到一个错误,该函数无法找到。下面是一个例子:

abstract class a {
    public function build(){
        $this._loadComponents();
        return $this;
    }
    abstract protected function _loadComponents();
}
class b extends a {
    protected function _loadComponents(){
        echo "test";
    }
}
$b = new B();
$b->build();

导致:致命错误:调用未定义的函数

我做错了什么?

第3行的$this.应为$this->.是PHP中的一个连接操作符

使用

$this->_loadComponents();
不是

$this._loadComponents();

dot(.)操作符用于连接两个或多个字符串,而this(->)操作符用于访问类属性和函数。

在php .是一个连接标记,你应该使用$this->_loadComponents()

看这个:

<?php
abstract class a {
    public function build(){
        $this->_loadComponents();
        return $this;
    }
    abstract protected function _loadComponents();
}
class b extends a {
    protected function _loadComponents(){
        echo "test";
    }
}
$b = new B();
$b->build();
?>