У меня есть несколько запросов об этом примере, я делаю этот простой код, всего два класса, родительский и сынский класс. Когда я выполняю, сын должен выполнить родитель, а родительский метод может выполнить сам, НО программа не должна выполнять метод сына.
Когда я запускаю эту программу, выполняются оба, родитель и сын. Существуют ли какие-либо, чтобы предотвратить это и выполнить только метод отца?
class Father{
private $element = 0; //Just to prevent recursivity
public function add($a = null){
if ($this->element == 0) {
echo "<br>I'm the father"; //Execution of fhter
$this->element = 1;
$this->add('<br> I was an accidente'); //This instruccion call both methods, parent and soon
}else{
echo "<br>But not anymore";
}
}
}
class Son extends Father{
public function add($a = null){
parent::add();
echo "<br>I'm the son";
if ($a != null) {
echo $a;
}
}
}
$son = new Son();
$son->add();
И у меня есть эти результаты
I'm the father
But not anymore
I'm the son
I was an accident
I'm the son
Как вы видите, когда я выполняю $ this-> add ()Метод на родителя, они выполняют оба метода (добавить отца и сына).
Есть ли способ выполнить этот код, чтобы при выполнении $ this-> add () для отца он не выполнялся как (отец, так и сын)?
В другомсловами, я ожидал следующего результата
I'm the father
But not anymore
I'm the son
I was an accident
ПО ПРОИЗВОДСТВУ: я не могу изменить класс Отца. Спасибо