>  기사  >  백엔드 개발  >  php中的步骤链

php中的步骤链

WBOY
WBOY원래의
2016-06-13 13:04:13882검색

php中的方法链
在如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(); 


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.