在PHP中,如何从子类中访问父方法?我想要访问的方法也是一个实例方法。我尝试使用$ this访问,但当然是指我目前所在的课程。我不想重复代码并且不想静态访问它。
家长班:
protected function getSearchTerm(){
return $this->searchTerm;
}
儿童班:
protected function getSearchTerm(){
return parent::getSearchTerm();
}
答案 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