Может кому будет интересно.
Есть класс:
class x
{
public function __construct()//инициализируем и проверяем переменные
{
$this->x1();//запускаем функцию
echo 'D';
}
public function x1()
{
echo 'E'.$this->x2();
}
public function x2()//виртуальная функция
{
echo 'C';
}
}
class y extends x
{
public function x2()
{
echo 'B';
return 'A';
}
}
$yyy=new y();
Результат: BEAD Почему?
Вот как он читает:
$yyy=new y(); инициация класса:
дальше, он запускает public function x2() из class y - попутно, первой, появляется B
т.е. сначала производит все вычисления внутри класса для того чтоб найти результат А для $this->x2();
Потом уже function x1() Е, потом результат ранее полученный А...и в конце концов echo 'D';
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.