Php复制公共属性

dan*_*car 4 php

我正在寻找一种方法将所有公共属性从一个对象复制到另一个对象.

Pat*_*and 5

你试过get_object_vars函数吗?

foreach(get_object_vars($a) as $prop => $value)
{
   $b->$prop = $value;
}
Run Code Online (Sandbox Code Playgroud)

更现代的方法是使用Reflection:

$reflect = new ReflectionClass($a);

foreach($reflect->getProperties(ReflectionProperty::IS_PUBLIC) as $prop)
{
   $name = $prop->getName();
   $b->$name = $prop->getValue();
}
Run Code Online (Sandbox Code Playgroud)