PHP:变量中的类属性链接

标签 php oop method-chaining variable-variables

所以,我有一个结构类似于下面的对象,所有这些都作为 stdClass 对象返回给我

$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'
);

然后遍历 map 以填充新对象。我想我可以代替映射器...

最佳答案

如果我是你,我会创建一个简单的方法 ->property(); 返回 $this->contact->phone

关于PHP:变量中的类属性链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5375873/

相关文章:

oop - 函数式编程中的重构是否比 OOP 中的重构更困难?

java - 为什么我不能在java中调用nextLine()方法两次?

python - 在 pandas DataFrame 中删除列级别的方法链接解决方案

php - UPDATE 和 ORDER BY 的错误使用

javascript - 从 php cURL 获取正确的编码

php - 添加更多条件以在 mysql - 谷歌地图中查找附近的地点

Matlab 类方法 : Too many arguments

model-view-controller - MVC 框架 - 服务器端 DOM 操作

javascript - 如何重绘图表: d3. js链接函数和crossfilter过滤

php - AJAX/Javascript 上传 PHP 问题