php - 如何在 PHP 中将对象的副本推送到数组中

标签 php arrays

我尝试在 PHP 中将对象添加到数组中,但没有成功,尝试了两种方法:

#1

$obj->var1 = 'string1';
$obj->var2 = 'string1';
$arr[] = $obj;
$obj->var1 = 'string2';
$obj->var2 = 'string2';
$arr[] = $obj;

#2

$obj->var1 = 'string1';
$obj->var2 = 'string1';
array_push($arr,$obj);
$obj->var1 = 'string2';
$obj->var2 = 'string2';
array_push($arr,$obj);

这两种方法都会将最新的对象添加到整个数组中。似乎对象是通过引用添加到数组中的。有没有办法按值将它们添加到数组中?

最佳答案

在 php 5 或更高版本中,对象总是通过引用传递。如果你想要一个副本,你可以使用克隆操作符

$obj = new MyClass;
$arr[] = clone $obj;

关于php - 如何在 PHP 中将对象的副本推送到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5625308/

相关文章:

javascript - 处理大量 promise 的最有效方式?

javascript - JS - jQuery inarray ignoreCase() 和 contains()

php - Ratchet 中的实时一对一消息

php - 帮助限制连接的 mysql 数据库查询

php - 网站的维基百科模板

php - SQL 表中的多维数组

CUDA gridDim、blockDim 和 threadIdx

php - 检查数组是否是多维的?

php - 如何在 2 个实体之间使用 QueryBuilder 在 Symfony Doctrine 中没有关系表的情况下加入

ios - 插入一个数组会影响另一个数组吗?