PHP7中的foreach更改

我说

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

它仅在对数组或值进行更改时才懒惰地创建副本吗?还是总是创建副本,并且实质上使引用循环实现性能优化?

此外,对象数组是否仍然循环/为您提供对象的引用?还是他们实际上还会为创建副本foreach并按值返回对象?

尼基

在PHP 7中,如果按值迭代数组,则只有在实际修改了数组的情况下,复制才会延迟进行。

如果改为通过引用迭代数组,则将在循环开始时执行分隔。如果阵列当前在多个地方使用,则这种分离将导致复制。

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

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

因此,不,通过引用进行迭代肯定不是优化,而是反优化。通常使用引用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PHP7中的PECL yaml

来自分类Dev

PHP7中的PHPSpec捕获TypeError

来自分类Dev

如何用Stretch中的php7替换dotdeb中的php7安装

来自分类Dev

PHP7认证

来自分类Dev

crypt()后备,用于PHP7中的旧哈希盐

来自分类Dev

php7中的错误和异常处理

来自分类Dev

PHP7中的随机字符串

来自分类Dev

如何在Apache中启用php7模块?

来自分类Dev

在php7中输入国家/地区名称的验证

来自分类Dev

如何在archlinux中安装php7模块?

来自分类Dev

crypt()后备,用于PHP7中的旧哈希盐

来自分类Dev

PHP7 中的 ZipArchive 找不到 zip 的内容

来自分类Dev

查询功能在php7中不起作用

来自分类Dev

更新 PHP7 后的 Opcache 不显示在 phpinfo 中

来自分类Dev

php7 和 jQuery 中的状态栏

来自分类Dev

如何安装php7?

来自分类Dev

启用PHP7 Opcache

来自分类Dev

Codeigniter php7错误

来自分类Dev

尝试安装php7

来自分类Dev

PHP7的路由库

来自分类Dev

PHP7 脚本崩溃

来自分类Dev

PHP 7更改为foreach:是否仍可以删除要迭代的数组中的项目?

来自分类Dev

PHP在foreach中更改数组值

来自分类Dev

如何使用php7在ubuntu 16.04中安装php5.6?

来自分类Dev

XML错误:输入的UTF-8不正确,表示编码!从PHP5更改为PHP7之后

来自分类Dev

如何在Alpine Linux中的Php7中启用短标签?

来自分类Dev

在PHP7上使用Phalcon?

来自分类Dev

未启用PHP7 CURL

来自分类Dev

PHPUnit学说和PHP7