Qu'est-ce qui ne va pas dans les classes ci-dessus? Fondamentalement, je veux avoir accès à partir de classes Audi, Ford, Opel à tous ou les trois classes (méthodes publiques). Par exemple dans l'une des méthodes d'objet Audi pour avoir accès aux méthodes publiques Opel comme:Comment étendre correctement certaines classes php pour avoir accès depuis la classe enfant à toutes les méthodes publiques d'une autre classe enfant?
[dans Audi] function otherPrices() {return $ this-> opel-> getPrice(); }
class Car {
function Car() {}
}
class Model extends Car {
public $audi;
public $ford;
public $opel;
function Model() {
parent::Car();
$this->audi = new Audi();
$this->ford = new Ford();
$this->opel = new Opel();
}
}
class Factory {
public $audi;
public $ford;
public $opel;
function Factory(){
$model = new Model();
$this->audi = $model->audi;
$this->ford = $model->ford;
$this->opel = $model->opel;
}
}
class Audi extends Factory {
public $price = 10;
function Audi() {}
function audiVsOpel(){
return "A:" . ($this->price - $this->opel->price);
}
}
class Ford extends Factory {
public $price = 12;
function Ford() {}
function fordVsAudi(){
return "B:" . ($this->price - $this->audi->price);
}
}
class Opel extends Factory {
public $price = 14;
function Opel() {}
function opelVsford(){
return "C:" . ($this->price - $this->ford->price);
}
}
/*
Here a implementation
*/
$factory = new Factory();
echo $factory->audi->audiVsOpel(); // want to echo -4
echo $factory->ford->fordVsAudi(); // want to echo 2
echo $factory->opel->opelVsford(); // want to echo 2
Nice, je savais qu'il y avait s un problème d'usine. : D Merci, au travail. –