今天看Laravel框架。看见一个很奇怪的写法。就是$this->{ 。当时很奇怪。后来发现可以让方法名是变量,同样对对象的属性也可行。这个太酷了。
class User{
public $name;
public function say(){
echo $this->name . " say:Hello world.";
}
public function doWork($name){
$this->{'name'} = $name;
foreach (array('say') as $method){
$this->{"$method"}();
}
}
}
$user = new User();
$user->doWork("song");
输出结果
song say:Hello world.