[php]
<?php
class TestClass extends TestClassBase {
private $name = 'name'; public function __call($method, $arguments) { echo 'method: '.$method.PHP_EOL; return $this->$method($this->name); }
}
class TestClassBase {
protected function getName($name) { echo $name.PHP_EOL; } /* protected function getUndefined($name) { echo $name.PHP_EOL; } */
}
$tc = new TestClass();
//echo $tc->getName('testname');
echo $tc->getUndefined();
[/php]
Выше происходит следующее: вызываем метод, которого нет ни в классе TestClass, ни в его родителе. Поскольку __call перехватывает такие вызовы, в нем снова $this->$method, то так продолжается до тех пор, пока не будет превышена PHP-константа ограничения вызовов метода.
Прошлые записи
- Переезд в Калининград
- О serverless технологии для чатботов
- Свободное время на улучшение блога
- o-zhizni-v-kaliningrade-spustya-god
- Продажа гаража из другого города
- В Калининграде спустя полгода
- Выйти на работу или сидеть дома
- Теперь мы живем в старой немецкой квартире и счастливы
- Как за один день найти жилье в августе 2020 (после пандемии) и чуть не остаться на улице с двумя детьми
- О переезде в Калининград
- О протестах в Америке