我希望能够设置对象的属性,但会生成属性名称。如何在PHP中完成此操作,而不使用eval()
e.g:
$obj->name = "Prakash Raman"; // Works
$obj->$attr_name = <some value>; // Would want something like this to work
我希望能够更改$attr_name
。
感谢。
答案 0 :(得分:8)
答案 1 :(得分:1)
有趣的是,您发布的代码将起作用。 (但是,对于property_exists,++。)
答案 2 :(得分:1)
我理解这个问题有一个有效的答案,但只是添加到你可以做的许多方法:
<?php
$myClass = new ReflectionClass($someClass);
if($myClass->hasProperty($someProperty)){
$myClass->getProperty($someProperty)->setValue($someClass,__NEW__VALUE__);
}
?>