2012-06-11 5 views
0

안녕하세요 저는 OOP의 새로운 기능입니다. 단지 물어보고 싶습니다. 각 클래스에서 return 클래스를 사용하지 않고 자동으로 클래스의 인스턴스를 반환 할 수 있습니까? 내가 할 수있는 그래서클래스의 인스턴스를 반환합니다 ("Class php의 속성"이었습니다)

class myclass 
{ 
    function myfinalOUtput() 
    {} 

    function get() 
    {} 

    function set() 
    {} 
} 

:

$class = new myclass(); 
$class->get()->set()->myfinalOUtput->(); 
+0

궁금한 점 : 나중에 코드를 읽을 때'$ class-> get() -> set() -> myfinalOUtput ->();을 이해할 것이라고 생각하십니까? – KingCrunch

+0

메소드가'$ this' ..를 반환하면 chaining을 수행 할 수 있습니다. 그러나 그것은 매우 나쁜 실천 IMHO입니다. 또한, setters *는 아무것도 리턴하지 않아야합니다. –

답변

2
return $this; 

장소 return new myclass(); 대신에 ... 그건

class myclass 
{ 
    function myfinalOUtput() 
    { 
     //blahblah 
     return new myclass(); 
    } 

    function get() 
    { 
     //blahblah 
     return new myclass(); 
    } 

    function set() 
    { 
     //blahblah 
     return new myclass(); 
    } 
} 

내가 좋아하는 뭔가를 원하는 : 여기 내 코드입니다 필요한 것은 모두 객체를 전달하는 것뿐입니다.

$class = new myclass(); 
$class->get()->set()->myFinalOutput(); 
0

당신이 찾고있는 $this 변수 Fluent interface이라고하고 php을 구현했습니다.

0

: 다른 메서드를 호출 할 수 있도록, 인스턴스를 반환 방법의 끝에서,

class myclass 
{ 
    function myfinalOUtput() 
    { 
     //blahblah 
     return $this; 
    } 

    function get() 
    { 
     //blahblah 
     return $this; 
    } 

    function set() 
    { 
     //blahblah 
     return $this; 
    } 
} 

이됩니다

관련 문제