Solid
Drosera anglica
Объясните, почему себя так ведут ссылки...
Есть код:
Тут вроде всё понятно... $arr передаёт в конструктор класса Z свою ссылку. К массиву добавляется 444.
Теперь, если раскомментировать закомментированные строки то получается, что в Z уже передаётся не ссылка, а массив. Конечно, это решается предельно просто: new Z(&$arr), но всё же... почему $arr меняет свою "передаваемость" (веру
)?
Есть код:
PHP:
class Z extends ArrayObject {
}
class A {
public $a;
public function get(&$a) {
$this->a =& $a;
}
}
$arr = array(2,3,4);
$a = new A;
//$a->get($arr);
//$a->a[] = 26767;
print_r($arr);
$zz = new Z($arr);
$zz[] = 444;
print_r($arr);
Теперь, если раскомментировать закомментированные строки то получается, что в Z уже передаётся не ссылка, а массив. Конечно, это решается предельно просто: new Z(&$arr), но всё же... почему $arr меняет свою "передаваемость" (веру
)?