我有一个很大的属性列表,我需要在两个对象之间进行映射,其中一个我需要映射的值被隐藏在数组中。我希望避免在代码中对属性名称进行硬编码。通过在PHP中的数组通过字符串访问属性?
如果我有这样一个类:
class Product {
public $colors, $sizes;
}
我可以访问属性是这样的:
$props = array('colors', 'sizes');
foreach ($props as $p) {
$this->$p = $other_object->$p;
}
至于我可以告诉大家,如果每个左侧的属性是一个数组,我不能这样做:
foreach ($props as $p) {
$this->$p[0]['value'] = $other_object->$p;
}
这是正确的,还是我错过了一些聪明的方法呢?
(这是在Drupal,但我真的不认为这事。)
这是动态设置对象属性 – 2010-05-11 23:18:12