现在的位置: 首页 > 综合 > 正文

php中的方法链

2013年08月21日 ⁄ 综合 ⁄ 共 1041字 ⁄ 字号 评论关闭
在如zend,cakephp等不少框架中,会看到如下面的类的调用方式,如

$obj->foo()->bar()->anotherMethod(); 

这个其实是利用了PHP中的方法链的调用方法,下面看个例子就明白了:

class Person  

{  

    private $name;  

    private $age;  

      

    public function setName($Name)  

    {  

        $this->name = $Name;  

    }  

      

    public function setAge($Age)  

    {  

        $this->age = $Age;  

    }  

      

    public function findMe()  

    {  

echo "My name is ".$this->name." and I am ".$this->age. " years old.";  

    }  

正常方式的调用:

$myself = new Person();  

$myself->setName('Arvind Bhardwaj');  

$myself->setAge('22');  

$myself->findMe(); 

用方法链的话:

class Person  

{  

    private $name;  

    private $age;  

      

    public function setName($Name)  

    {  

        $this->name = $Name;  

return $this;//Returns object of 'this' i.e Person class  

    }  

      

    public function setAge($Age)  

    {  

        $this->age = $Age;  

return $this;//Again returns object of 'this' i.e Person class  

    }  

      

    public function findMe()  

    {  

echo "My name is ".$this->name." and I am ".$this->age. " years old.";  

    }  



调用时就可以:

$myself = new Person();  

$myself->setName('Arvind Bhardwaj')->setAge('22')->findMe(); 

抱歉!评论已关闭.