1

PHP=是在使用时复制一个对象,还是只是创建一个指向现有对象的新指针?

这两个是一样的吗?

$obj1 = new object(); 
$obj2 = $obj1;

$obj1 = new object(); 
$obj2 = clone $obj1;
4

1 回答 1

5

在 PHP 4(即古代历史)中,对象确实是在赋值时被复制的。这是没有帮助的行为。

自 PHP 5 起,对象现在通过引用分配,除非它们被克隆。

您可以轻松地对此进行测试:

$obj1 = new object(); 
$obj2 = $obj1;
var_dump($obj1 === $obj2); // bool(true)

$obj1 = new object(); 
$obj2 = clone $obj1;
var_dump($obj1 === $obj2); // bool(false)
于 2013-11-14T18:19:18.600 回答