[php]

<?php

class TestClass extends TestClassBase {

private $name = 'name';



public function __call($method, $arguments)

{

    echo 'method: '.$method.PHP_EOL;

    return $this-&gt;$method($this-&gt;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-константа ограничения вызовов метода.

Прошлые записи

  1. Получение визы в Латвию
  2. Подготовка к поездке в Ригу
  3. Отпуск в Калининграде
  4. Подарок из Грузии
  5. Уборка придомовой территории
  6. Терпеть нельзя, действовать
  7. Курс 'Upgrade руководителя' от Rubius Academy
  8. Мечты об идеальном Томске. Общественный транспорт и проблема пробок
  9. Arch Linux вместо Linux Mint
  10. Highload 2017 vs Codefest 2018
  11. Детализация по звонкам Теле2, совершенным более полугода назад