假设你有一个像这样声明的类:
class DummyObject{
public $attr;
public function __construct(){
$this->attr=array('val_1','val_2','val_3');
}
}
Run Code Online (Sandbox Code Playgroud)
这样做:
$obj=(new DummyObject1());
$attr=&$obj->attr;
Run Code Online (Sandbox Code Playgroud)
您将获得一个引用,$attr因此在DummyObject $ obj实例中也将对数组进行任何修改.
而现在,最后的问题.使用反射,¿我怎样才能获得对存储的数组的引用$attr而不是副本?我试过这个没有成功:
$obj=(new DummyObject());
$reflector = new ReflectionObject($obj);
$reflectorProperty = $reflector->getProperty('attr');
$propertyValue=$reflectorProperty->getValue($ref);
Run Code Online (Sandbox Code Playgroud)
实际上,$attr是原始数组的副本.
提前致谢!