从另一个类更新对象状态

时间:2012-12-18 15:28:43

标签: php

大家好,我是这里的菜鸟和oophp。

我正在寻找从另一个类更新现有对象的状态。

所以在主文件中我有......

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

并且在class1中我有一个改变对象状态的setter方法。

soooo我正在做什么,从现有的class2方法中就是这样......

$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();

希望这有一定道理。

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

您必须将$obj1作为对class2::someFunction()的参考:

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