遇到一个这样的情况,一个对象 $obj 需要调用一个成员方法,而这个方法是动态指派的,以前不知道怎么调用,最近在laravel源码发现了这种调用,就是使用大括号。
class Demo{
public $method;
public function setMethod(){
$this->method = 'action';
return $this;
}
public function action(){
echo 'here';
}
public function stat(){
// 使用大括号
$this->{$this->method}();
}
}
$obj = new Demo();
$obj->setMethod()->stat();