2012-11-18 3 views
23

SO에이 유형의 비슷한 질문이 이미 2 개 있지만 여기에는 아무런 대답도 없습니다.PHPDoc 선택적 매개 변수

하는 PHPDoc 예를 들어, 옵션으로 내 기능의 선택적 매개 변수를 인식하지 않는 것 :

/** 
* Opens the connection and sets encoding 
* 
* @param string $encoding Encoding. 
*/ 
public function __construct($encoding='UTF-8') 
{ 
    $this->connect_mysqli(); 
    $this->set_encoding_mysqli($encoding); 
} 

는 선택 사항 인 것으로 $ 인코딩을 인식하지 못할까요 아니면 내가 여기서 뭔가를 놓친 거지? 나는 정말로 Google에 가서 문서를 읽으려고했지만 다음을 찾았습니다 :

실제 코드에서 매개 변수가 선택적인지 ("$ paramname = '기본값'을 통해) 표시하지 않으면, 매개 변수의 설명에서 매개 변수가 선택적임을 언급해야합니다.

그래서 난 내 코드에 문제를 볼 수 없습니다,하지만 난 설명서에 얻을 모든은 다음과 같습니다 "__construct (문자열 $ 인코딩)", 흔적은 어느 곳이 매개 변수는 선택입니다.

답변

28

엄밀히 말하면 PHP는 "선택적 매개 변수"를 알지 못하지만 기본값을 가진 매개 변수는 함수 또는 메서드가 호출 될 때 생략 될 수 있습니다. 좋아요, 선택 매개 변수 끝에 오는 것입니다. 그러나 기본값은 문자열이므로 사용자의

@param string $encoding Encoding. 

이 완전히 맞습니다. 어떤 문서가 당신에게 시도하면 표기법

__construct([$encoding]) 

처럼 또는

__construct($encoding = 'UTF-8') 

좋을 것이라고

@param string $encoding (optional) Encoding. 

내가 당신과 동의처럼 직접 언급해야한다는 것입니다. 당신은 버그 리포트를

https://github.com/phpDocumentor/phpDocumentor2/issues?state=open

업데이트를 게시 할 수 있습니다 : 실현이 이미 확인 https://github.com/phpDocumentor/phpDocumentor2/search?q=optional&type=Issues

+0

보다 내 불량을 언급 한 것이다. PHPDocumentor는 이미이 기능을 내장하고 있었고, 나는 틀린 일을하고있다. 당신의 대답을 받아들이지 않는다면 누군가가 곧 새로운 정보로 나타나면 잠시 동안 열어 두십시오. 감사합니다. –

+2

PHPDocumentor의 최신 버전이 추가되었습니다. https://github.com/siad007/template.clean/commit/fe6f9c9b09799299e15b0a5c33c6325068de9609 – techdude

+1

새 주석으로 업데이트 할 수 있습니까? 여기에 제공된 링크 중 명백한 해답은 없습니다. – oskarth