2012-01-23 2 views
13

클래스를 만들 때 @param은 무엇을 의미합니까? 내가 이해하는 한, 변수에 어떤 종류의 데이터 유형이 있고 함수가 반환하는 값의 종류를 스크립트에 알리는 데 사용됩니다. 맞습니까? 예를 들어 :클래스에서 @param은 무엇을 의미합니까?

/** 
* @param string $some 
* @param array $some2 
* @return void 
*/ 

그럴까이 그렇게 할 수있는 또 다른 방법은, 내가 좋아하는 것들을 생각하고있다 : 그런 void function() { ... }이나 뭐. 변수의 경우 아마도 (int) $ test;

+0

당신은 ([하는 PHPDoc] http://manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tutorial_tags.pkg를 참조 밖으로 http://manual.phpdoc.org/HTMLframesConverter/default/ – Maerlyn

+0

확인해야합니다. html). – Xeoncross

답변

16

@param은 PHP에서 특별한 의미가 없으므로 일반적으로 설명을 작성하는 데 사용됩니다. 당신이 제공 한 예제는 바로 그것을 보여줍니다.

문서 도구를 사용하는 경우 @param, @summary 및 기타 비슷한 값 (도구의 정교함에 따라 다름)을 찾아 코드에 적합한 형식의 문서를 자동으로 생성합니다.

1

PHP는 주석을 완전히 무시하고 있습니다. 메서드가 코드를 더 읽기 쉽고 이해하기 쉽게하기 위해 필요한 매개 변수를 설명하는 데 사용됩니다.

또한 좋은 코드 연습은 문서 생성기에 특정 이름 (예 : @param)을 사용하도록합니다.

일부 IDE에는 관련 방법에 대해 마우스를 가져갈 때 @param 및 기타 정보가 툴팁에 포함됩니다.

+1

PHP가 주석을 잊어 버리는 것은 완전히 사실이 아닙니다.PHP의 리플렉션 API는 특히 문서 주석을 해석 할 수 있으며 Doctrine과 같은 일부 프로젝트는 메타 설정을 위해 많이 사용합니다. http://www.php.net/manual/en/intro.reflection.php – redreinard

2

다른 사람들이 언급 한 것처럼 @param은 주석의 일부이며 구문 적으로 중요하지 않습니다. 문서 생성기에 힌트를 제공하기 만하면됩니다. PHPDoc 프로젝트를 보면 지원되는 명령문 및 구문에 대한 자세한 정보를 찾을 수 있습니다.

질문의 두 번째 부분 말하기 ... 내가 아는 한 PHP에서 반환 유형을 지정하는 방법은 없습니다. 또한 매개 변수를 특정 기본 유형 (문자열, 정수 등)으로 지정할 수 없습니다.

그러나 매개 변수는 PHP 5.1 이상에서 배열, 객체 또는 특정 유형의 객체 여야합니다.

function importArray(array $myArray) 
{ 
} 

이 메서드를 배열 외의 다른 것으로 호출하면 PHP에서 오류가 발생합니다. 당신이 MyClass 제외한 모든 유형의 객체로 doStuff를 호출하려고하면

class MyClass 
{ 
} 

function doStuff(MyClass $o) 
{ 
} 

, PHP는 다시 오류가 발생합니다.

0

@param은 입력 매개 변수 유형이 무엇인지 알려주는 설명 주석의 일부입니다. 코드 구문과는 아무런 관련이 없습니다. 메모장 + +와 같은 색상 지원 편집기를 사용하면 코드와 의견을 쉽게 볼 수 있습니다.

2

나는 이것이 오래되었다는 것을 압니다 만, 단지 참고 용으로 질문의 두 번째 부분에 대한 대답은 이제 PHP7입니다.

// this function accepts and returns an int 
function age(int $age): int{ 

    return 18; 
} 
관련 문제