gpt4 book ai didi

php - 是否有将 PHP 数组复制到另一个数组的功能?

转载 作者:IT老高 更新时间:2023-10-28 11:36:17 24 4
gpt4 key购买 nike

是否有将 PHP 数组复制到另一个数组的函数?

我曾多次尝试复制 PHP 数组。我想将对象内部定义的数组复制到对象外部的全局对象中。

最佳答案

在 PHP 中,除了对象之外的所有变量都是通过写时复制的机制分配的,而对象是通过引用分配的。这意味着对于具有标量值的数组,$b = $a 已经会给你一个副本:

$a = array();
$b = $a;
$b['foo'] = 42;
var_dump($a);

将产生:

array(0) {
}

而对于对象,

$a = new StdClass();
$b = $a;
$b->foo = 42;
var_dump($a);

产量:

object(stdClass)#1 (1) {
["foo"]=>
int(42)
}

another answer 中解释了数组元素也可能是需要克隆的对象的极端情况。

您可能会被 ArrayObject 等错综复杂的东西弄糊涂。 ,它是一个与数组完全一样的对象。然而,作为一个对象,它具有引用语义。

编辑:@AndrewLarsson 在下面的评论中提出了一个观点。 PHP 有一个特殊的特性叫做“引用”。它们有点类似于 C/C++ 等语言中的指针,但并不完全相同。如果您的数组包含引用,那么当数组本身通过副本传递时,引用仍将解析为原始目标。这当然是通常所期望的行为,但我认为值得一提。

关于php - 是否有将 PHP 数组复制到另一个数组的功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1532618/

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