我有一个父类和一个子类如下
class Objet {
../..
static function findByNumeroDeSerie($table, $numeroDeSerie) {
$db = new Db();
$query = $db->prepare("SELECT * from $table WHERE numeroDeSerie = :numeroDeSerie");
$query->bindValue(':numeroDeSerie', $numeroDeSerie, PDO::PARAM_INT);
$query->execute();
while($row = $query->fetch()) {
return new Objet($row);
}
}
}
class Produit extends Objet {
//
}
当我调用方法时Produit::findByNumeroDeSerie($table, $numeroDeSerie),
$produit = Produit::findByNumeroDeSerie("produits", $_GET['numeroDeSerie']);
echo get_class($produit); // echoes Object
它实例化了 anObjet而不是 a Produit,这意味着我无法访问Produit实例化对象上的 getter 方法。
知道为什么吗?我是否需要在 Objet 的每个子类中重写findByNumeroDeSerie方法?
汪汪一只猫
炎炎设计