2017-07-05 21 views
3

有一个奇怪的一个:PHP - 复制数组更改内部指针?

此代码输出 “345”:

$a = array(1,2,3,4,5); 
foreach ($a as $key => $input) 
{ 
    $ab = next($a); 
    echo $ab; 
} 

但这代码输出 “2345”:

$a = array(1,2,3,4,5); 
$abc = $a; 
foreach ($a as $key => $input) 
{ 
    $ab = next($a); 
    echo $ab; 
} 

两个代码之间的唯一区别是,在第二个示例中,数组$ a被复制到数组$ abc(第2行)

这会影响数组的内部指针吗?

预期的行为是什么?

+0

为我它显示相同的'2345' – Omi

+0

@Omi我看到他的行为 – Barmar

+0

看起来像这是PHP 7中修复。 – Barmar

回答

0

这是所有依赖于它的PHP版本正在运行:

任何比7将输出低345

而版本7将输出2345

您可以测试Here

+0

所以预期的行为是输出“2345”? –

+0

顺便说一句 - 问题始于5.2.16。 –