PHP로 OOP에 들어가기 직전에 우연히 발견 한 함수 정의의 이름 앞에 객체 유형을 넣으면 IDE가 객체의 멤버 함수와 데이터 멤버를 확인할 수 있습니다. 예를 들어함수 인수에 대한 객체 유형 지정?
:
public function foo(car $car) { }
반대로 :
public function foo($car) { }
합법적 바람직한 첫번째 방법? :-)
PHP로 OOP에 들어가기 직전에 우연히 발견 한 함수 정의의 이름 앞에 객체 유형을 넣으면 IDE가 객체의 멤버 함수와 데이터 멤버를 확인할 수 있습니다. 예를 들어함수 인수에 대한 객체 유형 지정?
:
public function foo(car $car) { }
반대로 :
public function foo($car) { }
합법적 바람직한 첫번째 방법? :-)
확실히 멍청한 놈을 돕는
감사 : Type Hinting. PHP 자체와 IDE의 기능으로 인해 더 유용한 코드 완성을 얻는 데 도움이됩니다. 그것을 밖으로 시도하고 잘못된 유형의 개체를 전달하십시오. 이렇게하면 버그 유형을 발견하는 데 도움이됩니다. 버그는 메소드에 전달 된 잘못된 유형의 결과입니다.
class A{}
class B{}
function foo(A $a) { echo "OK";}
foo(new A);
foo(new B);
또한 doccomments (죄송합니다, 링크 없음)를 살펴보십시오. 대부분의 IDE는 추가 코드 완성 제안을 위해이 코드를 읽고 사용할 수 있습니다.
/**
* @return MyObject
*/
function bar(){/* ..*/};
bar()->[Strg-Space]
실제로 가장 좋은 방법은 특정 클래스 이름이 아닌 interface을 암시하는 것입니다. 이것은 객체 지향 애플리케이션 설계에서 Interface Segregation Principle으로 돌아갑니다.
즉, 개체를 삽입 할 때 해당 메서드가 호출 할 수있는 특정 메서드 풋 프린트를 가질 것으로 예상해야합니다. 어떻게 다형성이 작동하는지.