2017-07-05 46 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。 –