PHP使用同一类的现有对象创建空对象

时间:2015-11-25 17:29:03

标签: php

是否存在与以下内容等效的本机PHP函数:

function newObject($object) {
    $class = get_class($object);
    return new $class;
}

2 个答案:

答案 0 :(得分:1)

我认为没有。

也没有捷径。 new get_class($x);尝试使用类get_classnew (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);

See it live