小编jLu*_*gas的帖子

如何使用PHP中的反射通过引用获取属性值?

假设你有一个像这样声明的类:

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是原始数组的副本.

提前致谢!

php reflection

2
推荐指数
1
解决办法
1373
查看次数

标签 统计

php ×1

reflection ×1