2013-02-14 3 views
1

누군가 나에게 설명 할 수 있습니까?

이 두 가지 방법의 차이점은 무엇입니까?

function some_function($foo) 
    { 
    } 

내 경우

function some_function(foo $foo) 
    { 
    } 

public function validate_something(notice $notice, $tok_id, $captcha) 
{ 
    if(something === true) { 
     $notice->add('info', 'Info message'); 
    } else { 
     $notice->add('error', 'Error message'); 
    } 
} 

$ 고지 그것은라고

class notice { 

    private $_notice = array(); 

    public function get_notice(){ 
     return $this->_notice; 
    } 

    public function add($type, $message) { 
     $this->_notice[$type][] = $message; 
    } 
    ... 
} 

답변

6

클래스 통지서의 목적은 type hinting

function some_function($foo) 
{ 
} 

5,는 인수가

function some_function(bar $foo) 
{ 
} 

가 호출 될 때 some_function 전달 될 데이터 유형 (클래스, 추상 또는 인터페이스 또는 어레이) 바의 인수를 기대합니다

호출되면 some_function 전달되기를 기대 이 데이터 형식이 아닌 인수를 전달하면 ..., 당신은 t의 값은 무엇 잡을 치명적인 오류

편집

를 얻을 수 있습니다 암시하는거야?

  • 코드는 다음 is_a 또는 instance_of 에 대한 유효성 검사 인수를 사용하지 않기 때문에

    .
  • 방어 코더를 줄입니다.
  • 함수/메소드는 인수에 대해 자체적으로 문서화됩니다.

    function some_function($foo) { 
    } 
    

    당신이 당신의 기능 $foo

    내부적라는 하나 개의 매개 변수 기다리고있어 :라고 당신은 하나 개의 매개 변수를 기대하고

    function some_function(foo $foo) { 
    } 
    

    을이 방법

1

$foo하지만 foo 유형 (클래스 foo의 객체)

01이어야합니다.
관련 문제