是否存在将PHP数组复制到另一个数组的功能?
我已经被烧了好几次了,试图复制PHP数组。我想将对象内部定义的数组复制到对象外部的全局数组。
在PHP中,数组是通过副本分配的,而对象是通过引用分配的。这意味着:
$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) }
您可能会对诸如的复杂性感到困惑ArrayObject,该对象的行为完全类似于数组。但是,作为对象,它具有引用语义。
编辑:@AndrewLarsson在下面的评论中提出了一个观点。PHP具有一个称为“引用”的特殊功能。它们在某种程度上类似于C / C ++等语言中的指针,但并不完全相同。如果您的数组包含引用,则当数组本身通过副本传递时,引用仍将解析为原始目标。当然,通常这是期望的行为,但是我认为值得一提。
问题来源于stack overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。