Предположим, у вас есть класс, объявленный так:
class DummyObject{
public $attr;
public function __construct(){
$this->attr=array('val_1','val_2','val_3');
}
}
Делаем это:
$obj=(new DummyObject1());
$attr=&$obj->attr;
Вы получите ссылку на $attr
, поэтому любые изменения, сделанные в массиве, будут выполнены также в экземпляре DummyObject $ obj.
И вот, наконец, вопрос. Используя отражение,, как я могу получить ссылку на массив, хранящийся в $attr
, а не копию ?. Я попробовал это без успеха:
$obj=(new DummyObject());
$reflector = new ReflectionObject($obj);
$reflectorProperty = $reflector->getProperty('attr');
$propertyValue=$reflectorProperty->getValue($ref);
Фактически, $attr
является копией исходного массива.
Заранее спасибо!