我正在寻找一种方法,可以将一个对象的所有公共属性复制到另一个对象中。
你尝试过使用get_object_vars函数吗?
foreach(get_object_vars($a) as $prop => $value)
{
$b->$prop = $value;
}
一种更现代的方法是使用反射:
$reflect = new ReflectionClass($a);
foreach($reflect->getProperties(ReflectionProperty::IS_PUBLIC) as $prop)
{
$name = $prop->getName();
$b->$name = $prop->getValue();
}