0

以下のような親クラスと子クラスがあります

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

Objet代わりに をインスタンス化します。つまり、インスタンス化されたオブジェクトProduitのゲッター メソッドにアクセスできません。Produit

理由はありますか?Objet のすべての子クラスでfindByNumeroDeSerieメソッドを書き直す必要がありますか?

4

2 に答える 2