首页 >后端开发 >php教程 >如何替换 PHP 已弃用的 `each()` 函数?

如何替换 PHP 已弃用的 `each()` 函数?

Barbara Streisand
Barbara Streisand原创
2024-12-20 15:01:11758浏览

How to Replace PHP's Deprecated `each()` Function?

从已弃用的each() 函数升级代码

PHP 7.2 已弃用each() 函数,在使用它时会导致警告。本文探讨如何现代化代码并避免使用each()。

示例案例

以下是之前使用each() 的几个示例:

  1. 使用reset()和赋值list():

    $ar = $o->me;
    reset($ar);
    list($typ, $val) = each($ar);
  2. 直接赋值:

    $out = array('me' => array(), 'mytype' => 2, '_php_class' => null);
    $expected = each($out);
  3. 错误地迭代数组:

    for(reset($broken);$kv = each($broken);) {...}
  4. 忽略 a 中的键list() 赋值:

    list(, $this->result) = each($this->cache_data);
  5. 使用长度检查错误迭代:

    reset($array);
    while( (list($id, $item) = each($array)) || $i < 30 ) {
     // code
     $i++;
    }

更新的代码

1。赋值

替换为 key() 和 current():

$ar = $o->me;
$typ = key($ar);
$val = current($ar);

2.直接赋值

替换为显式数组键和值:

$out = array('me' => array(), 'mytype' => 2, '_php_class' => null);
$expected = [key($out), current($out)];

3.正确的迭代

使用foreach()并在循环内分配键值对:

foreach ($broken as $k => $v) {
     $kv = [$k, $v];
}

4.键忽略

直接赋值当前值:

$this->result = current($this->cache_data);

5.带检查的数组迭代

替换为传统的 for() 循环:

reset($array);
for ($i = 0; $i < 30; $i++) {
    $id = key($array);
    $item = current($array);
    // code
    next($array);
}

以上是如何替换 PHP 已弃用的 `each()` 函数?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn