I would like to be able to do the following:
$obj = new stdClass;
$obj->status = "success";
$obj2 = new stdClass;
$obj2->message = "OK";
How can I extend $obj so that it contains the properties of $obj2, eg:
$obj->status //"success"
$obj->message // "OK"
I know I could use an array, add all properties to the array and then cast that back to object, but is there a more elegant way, something like this:
extend($obj, $obj2); //adds all properties from $obj2 to $obj
Thanks!
This is more along the lines of they way that you didn't want to do it....
However I think that would be a little better than having to iterate over the properties.
if the object is the instance of stdClass (that's in your case) you can simply extend your object like...
.... and as many as you wish.
You could use get_object_vars() on one of the
stdClass
object, iterate through those, and add them to the other:Not sure if you'd deem that more elegant, mind you.
Edit: If you're not stingy about actually storing them in the same place, take a look at this answer to a very similar question.
have a look at object cloning http://php.net/manual/en/language.oop5.cloning.php