so in first part i made 2 object, instantiate two classes (one we generate from createController function)
$loader = new Loader();
$controller = $loader->createController();
$controller->executeAction();
and the method executeAction
code:
public function executeAction() {
return $this->{$this->action}();
}
my question is taking this line of code: $this->{$this->action}()
how this method is called and why use curly braces; Is trying to execute the action();
function of extended class maybe?
You can simply put the
$this->action
in another local variable and then, call it:means that the method that should be called comes from the property
$this->action
.is equivalent to:
See the PHP documentation of variable variables and variable functions for more examples of this. The braces are needed because
$this->$this->action()
would normally be treated as($this->$this)->action()
.