当前位置:  开发笔记 > 编程语言 > 正文

PHP7中的foreach更改

如何解决《PHP7中的foreach更改》经验,为你挑选了1个好方法。

foreach在PHP7中,默认情况下,按值迭代时,根据以下内容对数组的副本进行操作:http://php.net/manual/en/migration70.incompatible.php

是否只有在对数组或值进行更改时才会懒惰地创建副本,或者它是否总是复制并实质上使引用循环进行性能优化?

此外,对象数组是否仍然循环/给你对象的引用?或者他们实际上是否也会创建副本foreach并按值返回对象?



1> NikiC..:

在PHP 7中,如果按值迭代数组,则只有当数组实际被修改时才会延迟复制.

如果通过引用迭代数组,则将在循环开始时执行分隔.如果阵列当前在多个位置使用,则此分离将导致复制.

此外,通过引用进行迭代意味着a)数组必须被包装到引用中,并且b)每个元素也必须被包装在引用中.创建引用包装器是一项昂贵的操作,因为它需要分配.

另外,通过引用迭代要求我们使用修改安全的迭代机制.这是通过向数组注册迭代器并在各种数组修改操作中检查可能受影响的迭代器来实现的.

所以不,通过引用迭代肯定不是优化,它是一种去优化.通常使用引用.

推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有