小编典典

合并两个 PHP 对象的最佳方法是什么?

all

我们有两个 PHP5 对象,想将一个的内容合并到第二个中。它们之间没有子类的概念,因此无法应用以下主题中描述的解决方案。

如何将 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 会很慢。
  • 到目前为止,我们考虑将对象 A 和 B 转换为数组,然后在重新转换为对象之前使用 array_merge() 合并它们,但我们不能说我们为此感到自豪。

阅读 67

收藏
2022-05-27

共1个答案

小编典典

如果您的对象仅包含字段(无方法),则此方法有效:

$obj_merged = (object) array_merge((array) $obj1, (array) $obj2);

当对象有方法时,这实际上也有效。(用 PHP 5.3 和 5.6 测试)

2022-05-27