Salut,
Tes notions d'objets sont erronnées. Lors de l'instanciation de l'objet de classe B, aucun objet de classe A n'est instancié : l'objet de classe B instancié hérite simplement des méthode et propriétés de la classe A, éventuellement redéfinies dans la classe B.
Ce que tu peux éventuellement faire, si vraiment tu le veux, c'est instancier un objet de la classe parente A. Ca, c'est faisable.
Une méthode élégante serait d'utiliser l'
API de réflexion de PHP 5 :
$myB = new B();
$oRef = new ReflectionClass($myB);
$oParentClass = $oRef -> getParentClass();
if ($parentClass -> isInstantiable() && $oParentClass {
$myParent = $oParentClass -> newInstance();
}
En PHP4, on peut faire comme ça :
$myB = new B();
$parentClass = get_parent_class($myB);
$myParent = new $parentClass();
La méthode PHP4 fonctionne aussi avec PHP5. Mais l'avantage de l'API de réflexion, c'est qu'on peut faire toute une batterie de tests qu'on ne peut pas faire en PHP4 (l'exemple n'en montre que 2 parmi beaucoup d'autres).
Neige