今天看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.