class foo {
public $value1 = 1;
public function setValue1(& $v) {
$this->value1 = $v;
}
}
class bar {
public $value2 = 2;
public $obj;
public function & getValue2() {
return $this->value2;
}
public function setValue2($v) {
$this->value2 = $v;
}
}
$foo = new foo();
$bar = new bar();
$bar->obj = $foo;
$foo->setValue1($bar->getValue2()); //<-- not works
//$foo->value1 =& $bar->getValue2(); //<-- works
$bar->setValue2(4);
var_dump($foo, $bar) Prints:
object(foo)[124]
public 'value1' => int 2
object(bar)[123]
public 'value2' => int 4
public 'obj' =>
object(foo)[124]
public 'value1' => int 2
$ foo-> setValue1($ bar-> getValue2())を使用しているときに、foo-> value1が2に等しく、bar-> value2が4に等しいのはなぜですか?
プロパティの代わりにメソッドを使用して、参照による受け渡しと参照による戻りを試みています。