PHP中的函數(shù)-- foreach()的用法詳解
更新時(shí)間:2013年06月24日 09:10:02 作者:
本篇文章是對(duì)PHP中的函數(shù)foreach()的用法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
PHP 4 引入了 foreach 結(jié)構(gòu),和 Perl 以及其他語(yǔ)言很像。這只是一種遍歷數(shù)組簡(jiǎn)便方法。foreach 僅能用于數(shù)組,當(dāng)試圖將其用于其它數(shù)據(jù)類(lèi)型或者一個(gè)未初始化的變量時(shí)會(huì)產(chǎn)生錯(cuò)誤。有兩種語(yǔ)法,第二種比較次要但卻是第一種的有用的擴(kuò)展。
foreach (array_expression as $value)
statement
foreach (array_expression as $key => $value)
statement
第一種格式遍歷給定的 array_expression 數(shù)組。每次循環(huán)中,當(dāng)前單元的值被賦給 $value 并且數(shù)組內(nèi)部的指針向前移一步(因此下一次循環(huán)中將會(huì)得到下一個(gè)單元)。
第二種格式做同樣的事,只除了當(dāng)前單元的鍵名也會(huì)在每次循環(huán)中被賦給變量 $key。
自PHP 5 起,還可能遍歷對(duì)象。
注意:當(dāng) foreach 開(kāi)始執(zhí)行時(shí),數(shù)組內(nèi)部的指針會(huì)自動(dòng)指向第一個(gè)單元。這意味著不需要在 foreach 循環(huán)之前調(diào)用 reset()。
注意:除非數(shù)組是被引用,foreach 所操作的是指定數(shù)組的一個(gè)拷貝,而不是該數(shù)組本身。foreach對(duì)數(shù)組指針有些副作用。除非對(duì)其重置,在 foreach 循環(huán)中或循環(huán)后都不要依賴(lài)數(shù)組指針的值。
自 PHP 5 起,可以很容易地通過(guò)在 $value 之前加上 & 來(lái)修改數(shù)組的元素。此方法將以引用賦值而不是拷貝一個(gè)值。
<?php
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
$value = $value * 2;
}
// $arr is now array(2, 4, 6, 8)
?>
此方法僅在被遍歷的數(shù)組可以被引用時(shí)才可用(例如是個(gè)變量)。
<?php
foreach (array(1, 2, 3, 4) as &$value) {
$value = $value * 2;
}
?>
復(fù)制代碼 代碼如下:
foreach (array_expression as $value)
statement
foreach (array_expression as $key => $value)
statement
第一種格式遍歷給定的 array_expression 數(shù)組。每次循環(huán)中,當(dāng)前單元的值被賦給 $value 并且數(shù)組內(nèi)部的指針向前移一步(因此下一次循環(huán)中將會(huì)得到下一個(gè)單元)。
第二種格式做同樣的事,只除了當(dāng)前單元的鍵名也會(huì)在每次循環(huán)中被賦給變量 $key。
自PHP 5 起,還可能遍歷對(duì)象。
注意:當(dāng) foreach 開(kāi)始執(zhí)行時(shí),數(shù)組內(nèi)部的指針會(huì)自動(dòng)指向第一個(gè)單元。這意味著不需要在 foreach 循環(huán)之前調(diào)用 reset()。
注意:除非數(shù)組是被引用,foreach 所操作的是指定數(shù)組的一個(gè)拷貝,而不是該數(shù)組本身。foreach對(duì)數(shù)組指針有些副作用。除非對(duì)其重置,在 foreach 循環(huán)中或循環(huán)后都不要依賴(lài)數(shù)組指針的值。
自 PHP 5 起,可以很容易地通過(guò)在 $value 之前加上 & 來(lái)修改數(shù)組的元素。此方法將以引用賦值而不是拷貝一個(gè)值。
復(fù)制代碼 代碼如下:
<?php
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
$value = $value * 2;
}
// $arr is now array(2, 4, 6, 8)
?>
此方法僅在被遍歷的數(shù)組可以被引用時(shí)才可用(例如是個(gè)變量)。
復(fù)制代碼 代碼如下:
<?php
foreach (array(1, 2, 3, 4) as &$value) {
$value = $value * 2;
}
?>
相關(guān)文章
PHP 加密/解密函數(shù) dencrypt(動(dòng)態(tài)密文,帶壓縮功能,支持中文)
采用SHA1生成密匙簿,超過(guò)300個(gè)字符使用ZLIB壓縮 支持中文,大家可以測(cè)試下。2009-01-01使用PHP獲取當(dāng)前url路徑的函數(shù)以及服務(wù)器變量
本篇文章是對(duì)使用PHP獲取當(dāng)前url路徑的函數(shù)以及服務(wù)器變量的實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06PHP+JS+rsa數(shù)據(jù)加密傳輸實(shí)現(xiàn)代碼
PHP+JS+rsa數(shù)據(jù)加密傳輸實(shí)現(xiàn)代碼,需要的朋友可以參考下。2011-03-03php實(shí)現(xiàn)簡(jiǎn)單的守護(hù)進(jìn)程創(chuàng)建、開(kāi)啟與關(guān)閉操作
這篇文章主要介紹了php實(shí)現(xiàn)簡(jiǎn)單的守護(hù)進(jìn)程創(chuàng)建、開(kāi)啟與關(guān)閉操作,結(jié)合實(shí)例形式分析了基于pcntl擴(kuò)展的php守護(hù)進(jìn)程類(lèi)定義、啟動(dòng)及關(guān)閉等相關(guān)操作技巧,需要的朋友可以參考下2019-08-08舉例講解PHP面對(duì)對(duì)象編程的多態(tài)
這篇文章主要介紹了舉例講解PHP面對(duì)對(duì)象編程的多態(tài),是PHP入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-08-08PHP簡(jiǎn)單實(shí)現(xiàn)解析xml為數(shù)組的方法
這篇文章主要介紹了PHP簡(jiǎn)單實(shí)現(xiàn)解析xml為數(shù)組的方法,涉及php文件讀取、xml解析相關(guān)操作技巧,需要的朋友可以參考下2018-05-05PHP請(qǐng)求微信接口獲取用戶電話號(hào)功能示例
這篇文章主要介紹了PHP請(qǐng)求微信接口獲取用戶電話號(hào)功能,簡(jiǎn)單講述微信請(qǐng)求接口獲取用戶信息的相關(guān)功能,結(jié)合具體實(shí)例形式分析了php調(diào)用微信請(qǐng)求接口獲取用戶電話號(hào)碼的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2023-07-07