[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. Курс 'Upgrade руководителя' от Rubius Academy
  6. Мечты об идеальном Томске. Общественный транспорт и проблема пробок
  7. Arch Linux вместо Linux Mint
  8. Highload 2017 vs Codefest 2018
  9. Детализация по звонкам Теле2, совершенным более полугода назад
  10. Побыть туристом в своем городе
  11. Космология, Байкал, Математика, Минимализм