0

例如,我有两个类:

class A {
  protected $x, $y;
}

class B {
  protected $x, $z;
}

在他们每个人中,我都需要一种方法来填充数组中的数据。因此,由于可以编写通用填充符,因此我想编写一次此代码。

在 5.4 中,我相信特质可以使编写类似的东西成为可能

protected function fill(array $row) {
  foreach ($row as $key => $value) {
    $this->$$key = $value;
  }
}

并使用它。

但是我如何在 5.3 中做到这一点?

4

1 回答 1

2

使用抽象类并让共享功能的类扩展它

abstract class Base
{
    protected function fill(array $row) {
        foreach ($row as $key => $value) {
            $this->{$key} = $value;
        }
    }
}

class A extends Base {
    protected $x, $y;
}

class B extends Base {
    protected $x, $z;
}
于 2013-06-24T09:09:00.437 回答