如何在PHP中访问子类中的父方法?

时间:2014-10-05 12:16:11

标签: php oop

在PHP中,如何从子类中访问父方法?我想要访问的方法也是一个实例方法。我尝试使用$ this访问,但当然是指我目前所在的课程。我不想重复代码并且不想静态访问它。

家长班:

    protected function getSearchTerm(){
    return $this->searchTerm;
}

儿童班:

protected function getSearchTerm(){ return parent::getSearchTerm(); }

1 个答案:

答案 0 :(得分:0)

要从子类中的父类调用方法,可以使用parent

class Base
{
    function somefunc()
    {
        echo "hello";
    }
}
class Derived extends Base
{
    function call_somefunc()
    {
        parent::somefunc();
    }
}

$class = new Derived;
$class->call_somefunc(); //prints "hello"

这适用于不同的实例,这意味着parent::somefunc()调用Derived的特定实例的父类中的方法。所以基本上:

class Base
{
    function somefunc($id)
    {
        echo 'hello ' . $id . "<br />\n";
    }
}
class Derived extends Base
{
    public $id;
    function __construct($id)
    {
        $this->id = $id;
    }
    function call_somefunc()
    {
        parent::somefunc($this->id);
    }
}
$class1 = new Derived(1);
$class2 = new Derived(2);
$class1->call_somefunc(); //prints: hello 1
$class2->call_somefunc(); //prints: hello 2