【发布时间】:2013-11-26 17:50:17
【问题描述】:
我的问题是我有一个通过两个类共享的对象,其中包含一个数组,其中包含一个数组,并且沿着脚本,有人会请求一些类的值,一个 foreach 循环会改变这个值,我希望这个改变影响值的每个引用。
class bar {
protected $obj;
function __construct(&$obj) {
$this->obj = $obj;
}
public function output() {
print_r($this->obj->value);
}
}
class foo {
protected $obj;
function __construct(&$obj) {
$this->obj = $obj;
}
public function val() {
$result = array();
foreach($this->obj->value as $it){
$result[] = $it;
}
return $result;
}
}
// Shared Object
$obj = new stdClass();
// Default value
$obj->value = array('teste', 'banana', 'maca');
// Class 1
$bar = new bar($obj);
// Class 2
$foo = new foo($obj);
// Someone requests from class 2 the values and changes it
$new = $foo->val();
$new[] = 'abc';
// Class 1 outputs the value
$bar->output(); // this will print the default value. I want this to also have 'abc' value.
【问题讨论】:
标签: php arrays pass-by-reference