Php 使用特殊重载扩展类
我知道基本上如何扩展一个类并重载一个函数,同时仍然在重载函数中调用原始函数。在我进一步解释之前,让我先发布代码Php 使用特殊重载扩展类,php,operator-overloading,Php,Operator Overloading,我知道基本上如何扩展一个类并重载一个函数,同时仍然在重载函数中调用原始函数。在我进一步解释之前,让我先发布代码 class specList { public function __construct() { $this->list = array(); } public function add($item) { $this->list[] = $item; } public functi
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>';
}
}
类规范列表
{
公共函数构造()
{
$this->list=array();
}
公共功能添加($项)
{
$this->list[]=$item;
}
公共功能显示()
{
/*
*为了简单起见,让我们假设我有一个函数ul($list)
*使用中包含的每个项目生成格式正确的。
*/
返回ul($this->list);
}
}
类wrappedList扩展了specList
{
公共函数构造()
{
父项::_构造();
}
公共功能显示()
{
$return='';
$return.=//我需要一些方法来调用parents display()函数
返回$return.';
}
}
我知道这似乎是添加如此简单功能的一种非常复杂的方式。这是我的代码的简化版本,提供了一个简单的示例来解释我的问题。我需要能够使用相同的名称来重载函数,但向扩展类添加一组开始和结束代码。有没有办法做到这一点?我不知道从哪里开始。使用parent::display()
。看
例如:
class wrappedList extends specList
{
public function __construct()
{
parent::__construct();
}
public function display()
{
$return = '<div class="panel">';
$return .= parent::display();
return $return.'</div>';
}
}
class wrappedList扩展了specList
{
公共函数构造()
{
父项::_构造();
}
公共功能显示()
{
$return='';
$return.=parent::display();
返回$return.';
}
}
要调用父函数,可以使用parent::display()
您可以轻松地重新定义函数并调用父格式
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();
啊。。我讨厌答案就在眼前。谢谢你的帮助。别忘了选择答案;-)。