переопределенный метод вызывается дважды
У меня есть фрагмент кода
<?php
abstract class Testing{
public abstract function tester();
public function testing(){
$this->tester();
}
}
class Test extends Testing{
public function tester(){
echo 'test';
}
}
$t = new Test();
$t->testing();
Предполагается, что у меня есть выход test, но выход, который я получаю, - это testtest?
Почему tester() вызывается дважды?
Ссылка ссылка на ideon
1 ответ:
Язык сценариев PHP является нечувствительным к регистру. (не относится к переменным, хотя )
Так как ваш
childкласс не имеет никакого конструктора, конструктор родительского класса будет уволен.Когда вы делаете это..
$t = new Test();Запускается конструктор родительского класса, который является
public function testing(), (смотрите название класса соответствует )Из PHP Docs..
Для обратной совместимости, если PHP 5 не может найти __сооружать() функция для данного класса, и класс не унаследовал ее от a родительский класс, он будет искать функцию конструктора старого стиля, по названию класса.
Comments