【发布时间】:2011-11-02 02:48:44
【问题描述】:
我需要合并 2 个相同类型的自定义对象。下面是这个类的样子:
<?php
class a{
public $one;
public $two;
public function doSomething(){
//do stuff
}
}
我有 2 个 a 实例需要合并在一起。我知道我可以像这样使用 array_merge:
$result = (object)array_merge((array)$a1, (array)$a2);
但问题是我需要结果是 a 类而不是 stdObj。
如果我这样做:
$result->doSomething()
错误结果:PHP Fatal error: Call to undefined method stdClass::doSomething()
由于我们无法将类型强制转换为非原始类型,因此无法做到:$result = (a)array_merge((array)$a1, (array)$a2);
除了使用循环遍历一个对象并获取和设置值之外,还有更高效或更简洁的方法吗?
【问题讨论】: