Je cherche à comprendre les notions d'héritages complexes via l'utilisation de la POO.
J'ai déjà créer des classes héritées simples mais je voudrais savoir s'il est possible d’exécuter des fonctions de mêmes noms avec des ordres de priorités en utilisant les mots clés static::, self, ... J'avoue que je suis un peu perdu.
Voilà ce que j'ai en tête :
class classParent {
public $tabTab = array();
public function __construct () {
static::_liaisonsTab();
}
protected function _creationTab() {
return array("parentTab0", "parentTab1");
}
protected function _liaisonsTab() {
array_push($this->tabTab,static::_creationTab());
echo '<pre>';
print_r ($this->tabTab);
echo '</pre>';
}
}
class classEnfant extends classParent {
public function __construct () {
static::_liaisonsTab();
}
protected function _creationTab() {
return array("enfantTab0", "enfantTab1");
}
protected function _liaisonsTab() {
array_push($this->tabTab,static::_creationTab());
echo '<pre>';
print_r ($this->tabTab);
echo '</pre>';
$o = new classParent();
}
}
$e = new classEnfant;
J'obtiens :
Array
(
[0] => Array
(
[0] => enfantTab0
[1] => enfantTab1
)
)
Array
(
[0] => Array
(
[0] => parentTab0
[1] => parentTab1
)
)
Alors que je voudrais :
Array
(
[0] => Array
(
[0] => enfantTab0
[1] => enfantTab1
[2] => parentTab0
[3] => parentTab1
)
)