Мне нужно объединить 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);
Помимо использования цикла для итерации одного объекта, получения и установки значений, существуют ли более эффективные или более точные способы сделать это?