2008-12-23 3 views
8

은 내가 $ ㅋ 대한 자동 완성을 얻을이PDT/Netbeans의 클래스가있는 PHP 객체에 대한 자동 완성?

$blah = new Whatever(); 

같은 새로운 사용하여 클래스의 객체를 정의 할 때. 하지만 $ blah를 함수 매개 변수로 사용하면 어떻게해야합니까? 자동 완성 기능이 없으면 불완전합니다.

편집 : 포함되어 있고 PDT 또는 Netbeans이 알아낼 수없는 경우 어떻게합니까? PHP에서 변수의 형식을 선언 할 수있는 방법이 있습니까? 첫번째 코멘트에서

function myFunction(Whatever $blah) { 
} 

답변

20

방법은 "타입 힌트"라고합니다,하지만 당신은 현명하게 그것을 사용해야합니다

+0

Alan, Netbeans 클래스 Joe { public $ a; public $ b; } /* @var $ joe Joe */ $ joe-> 당신에게 자동 완성 기능이 제공되지 않습니다. –

+0

예,하지만 PDT 1.3을 사용 중입니다. –

+0

Netbeans 6.9.1에서이 기능을 사용했는데 매력처럼 작동합니다. 필자의 의견으로는 Yar의 의견이 추가 된 이후 PHP 지원이 향상되었다고 생각됩니다. – henrik

7

은 함수에 매개 변수 클래스 정의를 전달하려고합니다. 더 나은 솔루션은 phpDoc입니다.

/** 
* Some description of function behaviour. 
* 
* @param Whatever $blah 
*/ 
public function myFunction($blah) 
{ 
    $blah-> 
    // Now $blah is Whatever object, autocompletion will work. 
} 

정확히 같은 일을하는 인라인 phpDoc 주석을 사용할 수도 있습니다.

public function myFunction($blah) 
{ 
    /* @var $blah Whatever */ 
    $blah-> 
    // Now $blah is Whatever object, autocompletion will work. 
} 
+0

작동하지만 지금은 질문을 확장했습니다. 괜찮습니다. 좋은 답변을 주셔서 감사합니다. 이미 도움이되었습니다. –

+0

아, 그리고 "편집"에 대해서 : 나는 우아한 방식으로 만드는 법을 정말로 모른다. 하지만 필자의 Eclipse + PDT 설치는 유사한 경우에 클래스 매개 변수를 잘 해결한다. – maxnk

+0

좋아요, 아무도 그걸 이길 수 없다면 - 가능하면 좋겠지 만, 할 수있는 방법이있을 것입니다 - 최선의 답변을 드리겠습니다. Netbeans를 사용해보십시오, PDT에서 방금 전환했습니다. –