高效合并 PHP 对象
当使用不表现出继承关系的 PHP5 对象时,合并其内容可能是一个挑战。传统的基于子类的解决方案在这种情况下不适用。
问题陈述
考虑以下对象:
$objectA->a; $objectA->b; $objectB->c; $objectB->d;
目标是获得第三个对象 $objectC,包含 $objectA 的所有属性和$objectB.
$objectC->a; $objectC->b; $objectC->c; $objectC->d;
解决方案
合并对象最有效的方法是使用 (array) 将它们转换为数组,然后使用 array_merge() 合并它们。然后可以使用 (object) 将合并的数组强制转换回对象:
$obj_merged = (object) array_merge((array) $obj1, (array) $obj2);
即使对象具有方法,此技术也能有效地工作,正如在 PHP 5.3 和 5.6 中测试的那样。
备注
以上是如何在不继承的情况下高效地合并PHP对象?的详细内容。更多信息请关注PHP中文网其他相关文章!