首页 > 解决方案 > PHP ArrayIterator 和 current()

问题描述

我有这段 PHP 代码:

echo 'PHP ' . phpversion()."\n";

$arr = array();
for ($i=0; $i<10; $i++)
{
    $arr[] = new stdClass();
}

$it = new ArrayIterator($arr);

$i = 1;
foreach ($it as $obj)
{
    $obj->test = $i;
    $i++;
}

var_dump(current($it));

die();

PHP 5.3 的输出如下:

PHP 5.3.8
object(stdClass)#805 (1) {
  ["test"]=>
  int(1)
}

而 PHP 7.4.8 的输出如下:

PHP 7.4.8
file.php:33:boolean false

为什么这不再起作用了?

标签: phparrayiterator

解决方案


推荐阅读