假设你已经宣布这样一个类:如何使用PHP中的反射来引用属性值?
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
是原始数组的副本。
在此先感谢!
请问你的意图是什么详细阐述了该技术,并最终使用情况?我的意思是,你有对象,属性名称和属性是公共的。为什么你需要用反射来获得财产? – Yoshi
我猜想的唯一目的是让代码变得复杂。 – xdazz
我的意图不是让代码变得复杂。 我有一个对象,它可以引用其他对象,使用json_decode从JSON中的HTTP响应中获取,我需要遍历所有属性以递归地对存储字符串的所有属性进行一些更改。 – jLuengas