J'ai 5 scripts, disons: database.php, parent.php, child1.php, child2.php et somescript.php
La classe parent.php ressemble à ceci:
include 'database.php';
class Parent {
public $db;
function __construct() {
$this->db = new Database();
}
}
Les classes child1 et child2 ressemblent à ceci:
include 'parent.php';
class Child1 extends Parent {
function __construct() {
parent::__construct();
}
function useDb() {
$this->db->some_db_operation();
}
}
Le problème
Lorsque j'essaie d'inclure à la fois child1 et child2 dans somescript.php, cela renvoie l'erreur suivante:
ne peut pas déclarer la classe Database car le nom est déjà utilisé dans database.php à la ligne 4 (c'est la ligne qui contient les mots 'class Database')
Mais si j'inclus seulement un seul fichier (child1 ou child2), cela fonctionne très bien.
Comment puis-je corriger cela?