向每个特征或孩子的班级添加信息

时间:2018-06-16 13:01:29

标签: php oop

假设我有一个包含数组的类

class A {
  protected $list = [1];
}

然后我想通过traits或扩展类向实例添加信息。

trait B {
  protected $list = [2, 3];
}

class C extends A {
  protected $list = [4];
}

然后,如果我构建这样的东西

$d = new class extends C {
  use B;

  protected $list = [5];
}

我需要列表为[1, 2, 3, 4, 5]而不是[5]。显然这不是要走的路我只是用它来说明我需要做什么。问题是我不知道有多少特征或继承,因为我只是在设计父类。我很想使用构造函数,但如果有多个特征,它会变得非常快。

1 个答案:

答案 0 :(得分:0)

在PHP中没有本地方法。

从头脑中,你可以完成或多或少相同的事情,例如Ruby,其中一切都是一个对象(包括类本身),你可以覆盖或挂钩像{{1}这样的方法}。

但在PHP中考虑使用Decorator Pattern之类的东西:

extend