是否存在与以下内容等效的本机PHP函数:
function newObject($object) {
$class = get_class($object);
return new $class;
}
答案 0 :(得分:1)
我认为没有。
也没有捷径。 new get_class($x);
尝试使用类get_class
,new (get_class($x));
在语法上不正确,因为不允许使用括号。您可以使用包含类名的变量,但不能使用任何字符串表达式。
答案 1 :(得分:1)
单一功能,没有。惯用法,是的。使用ReflectionObject
:
class Foo {
}
$foo = new Foo();
$foo->bar = 'baz';
// this is the magic:
$new = (new ReflectionObject($foo))->newInstance();
var_dump($foo, $new);