我基本上扩展一个类并重载一个函数,同时仍然在重载函数中调用原始函数。在我进一步解释之前,先让我发布代码。
class specList
{
public function __construct()
{
$this->list = array();
}
public function add($item)
{
$this->list[] = $item;
}
public function display()
{
/*
* for simplicity sake lets assume I have a function ul($list) that
* builds a properly formatted <ul> with each item contained in a <li>.
*/
return ul($this->list);
}
}
class wrappedList extends specList
{
public function __construct()
{
parent::__construct();
}
public function display()
{
$return = '<div class="panel">';
$return .= //I need some way to call the parents display() function
return $return.'</div>';
}
}
我知道这似乎是添加这么简单功能的一种非常复杂的方式。这是我的代码的一个淡化版本,提供了一个简单的例子来解释我的问题。我需要能够使用相同的名称来重载函数,但是将一组开始和结束代码添加到扩展类中。反正有没有完成这个?我不知道从哪里开始。
答案 0 :(得分:1)
使用parent::display()
。请参阅the php manual。
例如:
class wrappedList extends specList
{
public function __construct()
{
parent::__construct();
}
public function display()
{
$return = '<div class="panel">';
$return .= parent::display();
return $return.'</div>';
}
}
答案 1 :(得分:0)
要调用父函数,您可以使用parent::display()
。
答案 2 :(得分:0)
您可以轻松地重新定义一个函数并调用父格式。
class Food {
public function eat() {
echo "eating food!";
}
}
class Banana extends Food {
public function eat() {
parent::eat();
echo "eating banana";
}
}
$banana = new Banana();
$banana->eat();