2013-05-05 2 views
3

인터페이스에 대한 PHP의 설명서를 보시려면 여기를 클릭하십시오 : PHP: Object Interfaces - Manual. 다음 코드는 작업 예제로 제공됩니다. 누군가가 bazword가 함수 서명의 일부로 선언되는 것을 설명 할 수 있었습니까? documentation 당이PHP - 인터페이스 함수 선언에 bareword 사용

바즈 힌팅 형 불리는

<?php 
interface a 
{ 
    public function foo(); 
} 

interface b extends a 
{ 
    public function baz(Baz $baz); 
} 

// This will work 
class c implements b 
{ 
    public function foo() 
    { 
    } 

    public function baz(Baz $baz) 
    { 
    } 
} 

답변

4

할 클래스의 이름 type hinting이라고합니다.

baz() 메서드는 첫 번째 인수 $bazBaz 유형의 개체 여야합니다. 객체의 유형은 객체가 작성된 클래스 또는 구현 된 인터페이스에서 가져옵니다.

+0

너희들은 이것을 너무 쉽게한다. Google에서 php function bareword 등을 검색하지 않고 20 분 동안 다양한 검색을 수행합니다. 이와 같은 bareword를 사용하는 것이 프로그래밍에서 전례가 없다는 것을 알려주는 여기의 응답조차도! 여기에 빠른 게시물, 그리고 10 분 이내에 ... 쾅! :) – dewd

+0

나는 아마도 내 자신의 시간을 사용하고 이것을 이해하는 데 사용했습니다. 어려운 일이있을 때 그것을 설명하기가 쉬워집니다. –

+0

정말 사실입니다. 나는 그들이 빨리 사용되지 않으면 신속하게 내 지식에서 빨리 사라지는 것을 찾는다. 나는 이것을 기억할 것이다! :) – dewd

0

따라서 바즈 방법 제 인수 $의 바즈 기대 객체

+0

네가 찾고있는 것을 알고있을 때 문서가 훌륭합니다! 분명히, 나는 타입 힌팅을 찾을 줄 몰랐다. 링크를 가져 주셔서 감사합니다. – dewd

+0

건배 @dewd. 당신이 당신의 대답을 가지고 있기를 바랍니다. 무엇이든 원하는 답변을 수락하십시오. –

2

클래스 c에서 함수 baz()에는 클래스가 Baz 인 객체 인 매개 변수가 필요합니다. 은 개체 이름 일뿐입니다. 그것은 baz()의 기능 안에서 사용됩니다.

는 그것은 Type Hinting

PHP 5 개를 소개 타입 힌트라고. 함수는 이제 매개 변수를 객체 ( 함수 프로토 타입의 클래스 이름 지정), 인터페이스, 배열 (PHP 5.1 이후) 또는 호출 가능 (PHP 5.4 이후)으로 강제 설정할 수 있습니다. 그러나 NULL이 기본 매개 변수 값으로 사용되면 나중에 호출 할 때 인수로 사용할 수 있습니다.

클래스 또는 인터페이스가 유형 힌트로 지정되면 모든 자식 또는 구현도 허용됩니다.

유형 힌트는 int 또는 string과 같은 스칼라 유형과 함께 사용할 수 없습니다. 형질도 허용되지 않습니다.