PHP foreach怎么用?
下面php 用實例講解PHP foreach的用法和注意事項。
比如:有下面的數組:
$array = array(1,2,3,4,5);
要求將$array數組中的每個元素值加1
通常情況,我們可以使用下面的處理方式,方法一:
foreach($array as $key = $value){ $array[$key] = $value+1;}
還可以使用下面的方式,方法二:
foreach($array as $value){ $value = $value+1;}
一般情況下這兩種寫法不會出現任何問題,產生的結果也相同??墒钱斘覀冊诮酉聛淼某绦蛑行枰褂?value,比如對$value賦個新值8,那么方法2的結果將會發生詭異的變化。
foreach($array as $value){ $value = $value+1;$value = 8;
這時打印print_r($array),我們希望輸出
Array ( [0] = 2 [1] = 3 [2] = 4 [3] = 5 [4] = 6 );
但實際上會輸出:
Array ( [0] = 2 [1] = 3 [2] = 4 [3] = 5 [4] = 8 ),
也就是說,最后一個元素變成了8。
為什么會出現這樣的情況呢?
實際上方法二中的$value是一個引用,而且是全局的,當foreach執行完后,對$value的引用仍然有效,這將導致在foreach外任何對$value的修改都會影響到$array中的最后一個元素。
那么如何解決這個問題呢?
方法非常簡單,既然$value在foreach外仍然有效,那么我們可以在foreach執行完成后把$value給unset掉。改進后的代碼如下:
foreach($array as $value){ $value = $value+1;Unset($value);$value = 8;
現在程序輸出$array最后一個元素是6,不再受$value修改的影響。
以上就是你真的了解PHP foreach嗎?非常清晰的用法實例講解的詳細內容,PHP教程
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答