大家好,我是这里的菜鸟和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();
希望这有一定道理。
答案 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
定义的一部分,方法是在&
前加上参数。