<?php
class MyObject
{
public function import(MyObject $object)
{
foreach (get_object_vars($object) as $key => $value) {
$this->$key = $value;
}
}
}
Будет делать то, что вы хотите, я думаю, но вы должны знать следующее:
get_object_vars
найдет только нестатические свойства get_object_vars
найдет только доступные свойства в соответствии с областью
Часть в соответствии с областью весьма важна и может заслуживать немного большего объяснения.Знаете ли вы, что область действия свойств зависит от класса , а не зависит от экземпляра в PHP?
Это означает, что в приведенном выше примере, если у вас было свойство private $bar
в MyObject
, get_object_vars
увидит это, поскольку вы находитесь в экземпляре класса MyObject
.Это, очевидно, не сработает, если вы пытаетесь импортировать экземпляры другого класса.