首先是代码,然后是问题:
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也成为对该数组的引用。
为什么它不像那样工作,以及如何使它工作?
如果您仍然不明白我的意思:第一个print_r打印数组包含2个元素,甚至认为它可能包含3个元素。当我通过addElement()将第三个元素传递给$arrayObject时,我还希望将它添加到传递给类的构造函数的$array中。
https://stackoverflow.com/questions/40497487
复制相似问题