php {} 神奇的作用 $this->{}

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

 

发表评论

电子邮件地址不会被公开。

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>