2012-02-17 2 views
4

에 매개 변수로 객체를 전달, 내가 PHP와 같은 일을 할 수있는 방법을 똑바로 매개 변수 그래서자바에서 PHP

public int foo (Bar bar) 
{ 
    ... call the methods from Bar class 
} 

에서 개체를 전달할 수 있습니다. 나는 함수가 pefectly 작동

function add($name, $description) 
{ 
    array_push($this->photos, new Photo(++$this->id, $name, $description)); 
} 

추가 변경하는 경우

class Photo 
{ 
    private $id, $name, $description; 
    public function Photo($id, $name, $description) 
    { 
     $this->id = $id; 
     $this->name = $name; 
     $this->description = $description; 
    } 
} 
class Photos 
{ 
    private $id = 0; 
    private $photos = array(); 

    private function add(Photo $photo) 
    { 
     array_push($this->photos, $photo); 
    } 
    public function addPhoto($name, $description) 
    { 
     add(new Photo(++$this->id, $name, $description)); 
    } 
} 
$photos = new Photos(); 
$photos->addPhoto('a', 'fsdfasd'); 
var_dump($photos); // blank 

: 감사 이 내 코드입니다. 그래서 무엇이 잘못 되었습니까?

+3

시도해 보셨습니까? 그렇다면 코드를 볼 수 있습니까? 무엇이 잘못 되었습니까? 오류가 있었습니까? [객체에 대한 PHP 매뉴얼] (http://php.net/language.types.object) 및 [함수 인수] (http://php.net/functions.arguments)도 참조하십시오. – Charles

+8

정확히 같은 방식입니다. –

+0

* 내가 함수를 변경하면 [...] 그것은 완벽하게 작동합니다. 그래서 뭐가 잘못 됐니? * 우리에게 말해주는 것입니다. 무슨 일이 일어나고 무슨 일이 일어날 것입니까? 오류 메시지 등을 얻었습니까? 제가 볼 수 있듯이,'add (...)'뿐만 아니라'$ this-> add (...)'함수를 호출해야합니다. –

답변

10

당신은 물론, 그냥 구문 변경, 그것을 동일한 방법을 수행

public function foo(Bar $bar) 
{ 
    // $bar->method() 
} 

은 명심 할 수 있습니다 만 type hint 클래스와 배열.