这是问题所在:
一个由其他几个类扩展的类。像这样:
class a {
private $propertyA;
public function getPropertyA()
{
return $this->propertyA;
}
}
class b extends a
{
public function getPropertyA()
{
return $this->propertyA;
}
}
class c extends a
{
public function getPropertyA()
{
return $this->propertyA;
}
}
有一个PDO mysql调用,使用http://php.net/manual/en/pdostatement.fetchall.php' class'来获取数据库中的结果。参数并指定' b'或者' c'作为我想要实例化的类。这一切都很好;但是假设课程' b' &安培; ' C'分享几种方法。
也许显而易见的方法是将两个类共同的方法移到类' a'。但这是一个问题;如果在PDO fetchAll中我将目标类指定为' a'我无法访问子类的方法和属性。如果我指定目标类,例如' b'我将访问从' a'扩展的方法。但不是属性(将在' b'中实例化)
我希望这个问题有道理;如果不是,我会尝试对它进行一些修饰。
编辑以提高清晰度 那么......问题是如何使用PDO的fetchAll-class来实例化对象,其中部分逻辑位于父类中。在这种情况下,方法是可用的(通过继承)但数据不会分配给属性(因为fetchAll实例化子类)。