在PHP中使用字符串属性名设置对象的属性
我希望能够设置对象的属性,但会生成属性名称。如果不使用在PHP中使用字符串属性名设置对象的属性,php,oop,reflection,Php,Oop,Reflection,我希望能够设置对象的属性,但会生成属性名称。如果不使用eval() e、 g: $obj->name=“Prakash Raman”//作品 $obj->$attr_name=;//想让这样的事情发生吗 我希望能够更改$attr\u name 谢谢 $obj->{$attr_name} = "New value"; 这将完全实现这一点 不过,请注意,我建议您将其与一起使用,以验证该属性的存在。有趣的是,您发布的代码将起作用。(++for属性_存在。) 我知道这个问题有一个有效的答案,但
eval()
e、 g:
$obj->name=“Prakash Raman”//作品
$obj->$attr_name=;//想让这样的事情发生吗
我希望能够更改$attr\u name
谢谢
$obj->{$attr_name} = "New value";
这将完全实现这一点
不过,请注意,我建议您将其与一起使用,以验证该属性的存在。有趣的是,您发布的代码将起作用。(++for属性_存在。)
我知道这个问题有一个有效的答案,但我想补充一下您可以采用的多种方法:
<?php
$myClass = new ReflectionClass($someClass);
if($myClass->hasProperty($someProperty)){
$myClass->getProperty($someProperty)->setValue($someClass,__NEW__VALUE__);
}
?>
<?php
$myClass = new ReflectionClass($someClass);
if($myClass->hasProperty($someProperty)){
$myClass->getProperty($someProperty)->setValue($someClass,__NEW__VALUE__);
}
?>