发布日期:2018-03-26
合并两个PHP对象的最好的方法是什么?+ 查看更多
合并两个PHP对象的最好的方法是什么?
+ 查看更多
发布日期:2018-03-26 16:19
分类:PHP
浏览次数:1025
如下所示,现在有两个PHP对象,想把其中一个的内容合并到另一个中。他们之间没有子类的关系,因此其他答案的回答在这里不适用
//We have this: $objectA->a; $objectA->b; $objectB->c; $objectB->d; //We want the easiest way to get: $objectC->a; $objectC->b; $objectC->c; $objectC->d;
备注
- 它们是对象,不是类
- 对象中包含有非常多的数据,使用foreach的话很慢
- 到目前为止,我们使用的方法为将对象转换为数组,然后使用array_merge()合并,再转为为对象,但是我们并不觉得这样最好
回答
如果你的对象中只有数据,没有方法的话,下面的方法可以实现
$obj_merged = (object) array_merge((array) $obj1, (array) $obj2);另外,经过测试在PHP 5.3和PHP 5.6下,对象中含有方法的情况以上方法依然可行