Как и зачем использовать фигурные скобки: return $ this -> {$ this-> action} ();

поэтому в первой части я сделал 2 объекта, создаю два класса (один из которых мы создаем из функции createController)

$loader = new Loader(); $controller = $loader->createController(); $controller->executeAction(); 

и метод executeAction код:

 public function executeAction() { return $this->{$this->action}(); } 

мой вопрос берет эту строку кода: $this->{$this->action}() как вызывается этот метод и зачем использовать фигурные скобки; Пытается выполнить action(); возможно, функция расширенного класса?

 $this->{$this->action}(); 

означает, что метод, который должен быть вызван, исходит из свойства $this->action .

 $this->action = 'func1'; $this->{$this->action}(); 

эквивалентно:

 $this->func1(); 

Дополнительные примеры этого см. В документации по PHP для переменных переменных и переменных функций . Скобки необходимы, потому что $this->$this->action() обычно рассматривается как ($this->$this)->action() .

Вы можете просто поместить действие $this->action в другую локальную переменную и затем вызвать ее:

 $action = $this->action; $this->$action();