English

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