Bonsoir,

Un petit problème dont je ne sais pas si c'est réalisable.

J'ai dans 2 fichiers distincts, 2 classes de même nom.

Dans une classe enfant que j'instancie dans mon script, je souhaite faire que ce soit le constructeur qui appelle le fichier de la classe parente.

Donc 4 fichiers de départ :
class_parent_1.php (contient la classe parent)
class_parent_2.php (contient la classe parent)
class_enfant_php (contient la classe enfant)
script.php

Donc un exemple de ce que je veux faire :

page script.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
require 'class_enfant.php';
$fichier_parent = $x == 1 ? 1 : 2;
 
$ma_classe = new enfant($fichier_parent);
Ma classe enfant contiendrait donc par exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
class enfant extends parent
{
    function __construct($parent)
    {
         require 'class_parent_' . $parent . '.php';
         parent::__construct();
    }
 
}
Mais bien entendu, cette façon ne fonctionne pas, php me signale un fatal error comme quoi la class parent n'existe pas.

Est-ce possible de faire ceci, donc que ça soit ma classe enfant qui appelle le fichier contenant la classe parent en fonction d'un argument passé dans le constructeur ?

Ou d'une autre manière peut-être.

Merci.