gpt4 book ai didi

php - 如何重新创建已创建的对象(参见示例)

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:46:33 25 4
gpt4 key购买 nike

我在看 OOP Basics并看到了这样的代码(稍微简化了一下)

可以看到这个类和输出

class Test{}

$a = new Test();
$b = new $a;

var_dump($b == $a); // true

我不明白的是 $b = new $a$a 已经是一个对象,那么这是如何/为什么工作的?如果我做 vardump $a 输出是:

object(Test)#1 (0) {
}

那么,该变量如何与 new 关键字一起使用。我认为我们只能将 new 与已经定义的类一起使用,或者与指向类 ex 的字符串一起使用:

$var = 'Test'; 
new $var; // ok

但在这种情况下,$var 是一个字符串,而不是另一个对象。

最佳答案

创建新对象的快捷方式。在 PHP 5.3.0 之前你必须这样做:

$class = get_class($instance);
$newInstance = new $class;

从 PHP 5.3.0 开始,你可以用这个做同样的事情:

$newInstance = new $instance;

在我看来非常有用,因为它消除了对临时变量的需要。

澄清一下,这会创建一个新对象。它不是克隆。换句话说,将调用 __construct() 而不是 __clone()

关于php - 如何重新创建已创建的对象(参见示例),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41639063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com