El siguiente fragmento de código nos permite unir dos objetos distintos gracias a la función para arrays "array_merge".


El funcionamiento es simple: tenemos 2 objetos, los convertimos a array con un casting (forzado de tipo) de los mismos, una vez pasados a array los unimos mediante un array_merge. Al resultado le aplicamos un casting y para convertirlos de nuevo en un objeto.

<?php
 $obj1 = new stdClass();
 $obj2 = new stdClass();
 $obj1->name = 'Josep';
 $obj2->last_name = 'Garcia';
 $obj2->website = 'josepgarcia.com';
 $result = (object) array_merge( (array) $obj1, (array) $obj2);
 var_dump($result);

Otro ejemplo que mezcla arrays, objetos y castings:

<?php
  $Objeto = (object) array(
     'yo' => (object) array(
          'nombre' => 'Josep',
          'apellidos' => 'Garcia'
      ),
      'web' => array( // SIN CASTIGN
        'url'=>'josepgarcia.com'
      ),
   );
   print $Objeto->yo->nombre; // Josep
   print $Objeto->yo->apellidos; // Garcia
   print $Objeto->web['url']; // josepgarcia.com

¿Preparado para empezar tu proyecto?

¡Comencemos!