-1

我正在尝试覆盖一个方法,但我收到一个错误,即找不到该函数。这是一个例子:

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();

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

我究竟做错了什么?

4

4 回答 4

1

$this.第 3 行应该是$this->. .是 PHP 中的连接运算符。

于 2013-04-19T10:42:05.723 回答
0

看看这个:

<?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();
?>
于 2013-04-19T10:53:44.940 回答
0

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

于 2013-04-19T10:43:14.173 回答
0

利用

$this->_loadComponents();

代替

$this._loadComponents();

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

于 2013-04-19T10:41:50.027 回答