2012-12-18 5 views
1

안녕하세요. 저는 여기에 그리고 멍청한 놈입니다.다른 클래스에서 객체 상태 업데이트

다른 클래스의 기존 개체 상태를 업데이트하려고합니다.

$obj1 = new class1(); 
$obj2 = new class2(); 

및 클래스 1에서 내가 가지고있는 기본 파일에

은 ... 나는 객체의 상태를 변경하는 방법을 세터 있습니다. 내가 Class2의 기존 방법 내에서, 일을 찾고 있어요 soooo는 무엇

내가 나중에 같은 객체 상태와 관련을 가지고

$obj1->updateName('Bob'); 

정적 방법이 더 좋은 없습니다 ...이 같은 것입니다 .

여기

class class1(){ 

    private $name = ''; 

    public function updateName($nameIn){ 
     $this->name = $nameIn; 
    } 

} 

class class2(){ 

    public function someFuntion(){ 

     //OTHER CODE// 

     $obj1->updateName('Bob'); 
    } 
} 


$obj1 = new class1(); 
$obj2 = new class2(); 

$obj2->someFuntion(); 

희망이 어떤 의미가 .... 한 페이지 예입니다.

답변

0

당신은 class2::someFunction()에 대한 참조로 $obj1을 통과해야합니다 : 명령이 참조로 전달하는 것을

class class2(){ 

    public function someFunction(&$obj1){ 

     //OTHER CODE// 

     $obj1->updateName('Bob'); 
    } 
} 

$obj1 = new class1(); 
$obj2 = new class2(); 

$obj2->someFunction($obj1); 

참고 &와 매개 변수를 앞에 추가로 someFunction 정의의 일부입니다.

http://php.net/manual/en/language.references.pass.php

0

항상 $obj1을 someFunction의 매개 변수로 전달할 수 있습니다.

class class1(){ 
    private $name = ''; 

    public function updateName($nameIn){ 
     $this->name = $nameIn; 
    } 
} 

class class2(){ 
    public function someMethod(class1 $class){ 
     $class->updateName('Bob'); 
    } 
} 


$obj1 = new class1(); 
$obj2 = new class2(); 

$obj2->someMethod($obj1);