2012-03-10 4 views
0
public function setAlbumTable(AlbumTable $albumTable) 
{ 
$this->albumTable = $albumTable; 
return $this; 
} 

저는 첫 번째 매개 변수 (매개 변수 btw가 아닙니다)는 데이터 유형과 유사합니까? 뭐야? 일정한 ? 젠드 프레임 워크 2에서 앱을 개발할 때이 문제가 발생합니다.이 ZF2 상수는 var 또는 데이터 유형입니까

답변

1

이것은 PHP's type hinting입니다. 이 함수의 첫 번째 매개 변수 ($albumTable)는 AlbumTable 클래스의 인스턴스이거나이 클래스에서 상속되는 클래스 여야합니다.

class Car {} 

class BlueCar extends Car {} 

function drive_the_car(Car $car) {} 

drive_the_car(42); // error, first parameter must be an instance of Car 

drive_the_car(new stdClass()); // error 

drive_the_car(new Car()); // works 

drive_the_car(new BlueCar()); // works 
0

실제 매개 변수 ($ albumTable)가 AlbumTable 클래스의 인스턴스가되도록합니다. 함수에 다른 것이 전달되면 PHP는 치명적인 오류를 발생시킵니다.

이것은 기능 및 속성을 사용하기 위해받은 변수/개체의 유형을 확인할 필요가 없기 때문에 유용합니다.

1

보여주는 코드는 setter 메소드를 통한 종속성 삽입의 예입니다. setter는 AlbumTable의 인스턴스를 전달 받고이 인스턴스를 클래스 필드에 할당합니다.

귀하의 메서드는 하나의 매개 변수 : $albumTable 만 전달됩니다.

매개 변수 앞에 AlbumTable이 있고 type hint이고 AlbumTable 인스턴스 또는 파생 클래스 만이 설정자에게 전달 될 수 있는지 확인합니다.

관련 문제