PHP是廣泛應用于網站開發的一種腳本語言,其高效且易用的特點使其受到了廣泛的用戶青睞。而PHP 7.2版本中的each函數更是一項值得大家關注的新特性。下面我們就來詳細了解一下each函數在PHP 7.2中的變化。
每個元素用過了,就把它扔掉,轉而尋找下一個——這是程序員們經常使用的一種思路。在PHP 5中,each函數的作用就是將當前數組中的第一個鍵/值對返回并將指針指向下一個元素。而在PHP 7.2版本中,each函數的功能更加強大了,由于以前的each函數會對原數組進行修改,因此在PHP7.2版本中,each函數已經被廢棄,取而代之的是新的函數——foreach。下面我們分別來介紹一下each和foreach函數的區別。
在過去,程序員們最常使用的each函數,其常規用法如下:
'apple',
'b' =>'banana',
'c' =>'cherry'
);
$result = each($array);
print_r($result);
?>
運行此段代碼,得到的數組是:
Array
(
[1] =>apple
[value] =>apple
[0] =>a
[key] => a
)
each返回當前鍵/值對應的索引數組,其中分別是當前數組項的value和key字段。在下一次調用each函數時,指針將轉向排序后的下一個項目。
而新版本的foreach函數則會遍歷整個數組,并返回每一項的值和鍵。每一次迭代的值都會被復制一次,這不同于在each中,每個元素只會在第一次被遍歷時返回。 新版foreach函數的常規用法如下所示:'apple',
'b' =>'banana',
'c' =>'cherry'
);
foreach ($array as $key =>$value) {
echo "{$key} =>{$value}" . PHP_EOL;
}
?>
這里的foreach函數實現了each的全部功能,但是比each容易理解得多。循環的時候,每一項都不僅可以方便地被讀取,還可以在被修改后立即保存回原數組。
以上便是each和foreach函數的使用方法及區別介紹,雖然each在PHP7.2中已經被廢棄,其實使用function create每次生成新的迭代器也是很不錯的方法,也不會對原數組造成任何影響。而舊有的each函數原有的錯誤已經修復了,不過如果沒有特殊要求,程序員們最好還是選擇迭代器更加清晰的foreach函數。