2012-01-17 6 views

답변

5

즉, type hinting입니다. 그것은 그 인자가 그 클래스의 인스턴스이거나 그것의 자손 클래스 중 하나가되어야한다는 것을 말하고 있다는 것을 의미합니다.

PHP 5는 타입 힌트를 도입했습니다. 이제 함수는 매개 변수를 객체로 강제 할 수 있습니다 (함수 프로토 타입에서 클래스 이름 지정). 또는 배열 (PHP 5.1부터). 그러나 NULL이 기본 매개 변수 값으로 사용되면 나중에 호출 할 때 인수로 사용할 수 있습니다.

0

commentPHP's page on function arguments은 몇 가지 힌트를 제공합니다. 인용

:

당신은 허용 인수 유형을 명시 할 당신의 기능에 대한 (매우) 제한 서명을 사용할 수 있습니다. 예를 들어

:

public function Right(My_Class $a, array $b)

먼저 인수 My_Class의 객체 제 배열에 의해이 말한다. My_Class는 이 My_Class를 확장하거나 (My_Class가 추상 클래스 인 경우) My_Class를 구현하는 클래스의 객체도 전달할 수 있음을 의미합니다. 정확히 My_Class가 필요하다면 final로 만들거나 $ a를 확인하는 코드를 추가해야합니다.

또한 "불행히도" "배열"은 이 (가) 서명에 사용할 수있는 유일한 내장 유형입니다. PHP가 $ a가 클래스 문자열의 객체 아니다 (와 $ B 클래스 부울의 객체가 아닌) 불평 때문에 다른 유형 즉 :

public function Wrong(string $a, boolean $b)

는 오류가 발생합니다. 당신이 $ a는 문자열 또는 $ B의 부울 경우 알 필요가 있다면 당신은 (또는 당신이 경우 캐스팅해야 할 수 있습니다 유형 불일치를 감지 할 경우

그래서, 당신은 당신의 함수 본문 및 예를 던져 예외 몇 가지 코드를 작성해야 그것은 가능하다).

관련 문제