【发布时间】:2011-07-19 13:16:00
【问题描述】:
所以,我有一个结构类似于下面的对象,所有这些都作为stdClass objects 返回给我
$person->contact->phone;
$person->contact->email;
$person->contact->address->line_1;
$person->contact->address->line_2;
$person->dob->day;
$person->dob->month;
$person->dob->year;
$album->name;
$album->image->height;
$album->image->width;
$album->artist->name;
$album->artist->id;
等等...(注意这些例子没有联系在一起)。
是否可以使用变量变量来调用contact->phone 作为$person 的直接属性?
例如:
$property = 'contact->phone';
echo $person->$property;
这不会按原样工作并引发E_NOTICE,因此我正在尝试寻找一种替代方法来实现这一目标。
有什么想法吗?
针对与代理方法相关的答案:
除了这个对象来自一个库之外,我会使用它来使用数组映射填充一个新对象,如下所示:
array(
'contactPhone' => 'contact->phone',
'contactEmail' => 'contact->email'
);
然后遍历地图以填充新对象。我想我可以改为使用映射器......
【问题讨论】:
-
第二个问题完全不清楚,和第一个问题无关,你可以开一个新问题
标签: php oop method-chaining variable-variables