[英]Class member reference to another object in PHP
首先是代码,然后是问题:
class MyArray
{
private $arrayRef;
function __construct(&$array){
$this->arrayRef = $array;
}
function addElement($newElement){
$this->arrayRef[] = $newElement;
}
function print(){
print_r($this->arrayRef);
}
}
$array = ['first', 'second'];
$arrayObject = new MyArray($array);
$arrayObject->addElement('third');
print_r($array); // prints array containing 2 elements
echo '<br/>';
$arrayObject->print(); // prints array containing 3 elements
在本示例中,类成员$ arrayRef不能用作对构造函数中提供的另一个数组的引用。 构造函数中的参数是通过引用传递的,但是我想这不会使成员$ arrayRef也成为对该数组的引用。
为什么它不能那样工作,以及如何使其工作?
如果您仍然不明白我的意思:first print_r打印包含2个元素的数组,甚至认为它可能预期包含3个元素。当我通过addElement()将第三个元素传递给$ arrayObject时,我也希望将其添加到我传递给类的构造函数的$ array。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.