【发布时间】:2017-04-24 12:35:04
【问题描述】:
我有 2 个类都扩展了一个抽象类。这两个类都有一个名为“content”的私有方法,它是另一个类的项目数组。 一旦我将对象 B 添加到 A 类的“内容”数组中,我需要从项目对象 B 中获取父对象 A。 下面是例子,看起来更方便:
<?php
abstract class heroes {
private $tag;
private $content = array();
function __construct($tag) {
$this->tag = $tag;
}
public function getContents() {
return $this->content;
}
protected function addContent($obj) {
$this->content[] = $obj;
return $obj;
}
}
final class batman extends heroes {
public function addPartner() {
return $this->addContent(new robin());
}
}
final class robin extends heroes {
private $capes;
public function dieAtFirstFight() {
return BATMAN OBJ???
}
}
$batman = new batman();
$batman = $batman->addPartner()->dieAtFirstFight();
?>
我尝试在抽象类中添加一个名为 $father 的私有方法,在该方法中,每次我添加一个伙伴时,我都会设置 $self(这是 Batman 对象),但在 php 错误日志中我收到错误“Batman 类的对象可以不能转成字符串”
【问题讨论】:
-
给英雄加一个“伙伴”字段怎么样?毕竟不是所有英雄都通用的?
标签: php class object abstract-class