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ù)類型或者一個(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 開始執(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)后都不要依賴數(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 開始執(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)后都不要依賴數(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)文章
6種解決PHP Trait屬性沖突問(wèn)題的方法小結(jié)
在PHP中,Trait是一種用于在類之間共享方法的方法,然而,Trait中的成員屬性可能會(huì)導(dǎo)致沖突,所以本文為大家整理了6種解決Trait屬性沖突的方法,希望對(duì)大家有所幫助2024-02-02
使用PHP和RabbitMQ實(shí)現(xiàn)消息隊(duì)列的延遲功能
這篇文章主要介紹了如何使用PHP和RabbitMQ實(shí)現(xiàn)消息隊(duì)列的延遲功能,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用PHP具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-03-03
PHP字符過(guò)濾函數(shù)去除字符串最后一個(gè)逗號(hào)(rtrim)
PHP字符過(guò)濾函數(shù)去除字符串最后一個(gè)逗號(hào),用php自帶的函數(shù)比較容易解決2013-03-03
一些php項(xiàng)目中比較通用的php自建函數(shù)的詳解
本篇文章是對(duì)一些php項(xiàng)目中比較通用的php自建函數(shù)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
php通過(guò)數(shù)組實(shí)現(xiàn)多條件查詢實(shí)現(xiàn)方法(字符串分割)
這篇文章主要介紹了php通過(guò)數(shù)組實(shí)現(xiàn)多條件查詢實(shí)現(xiàn)方法(字符串分割),需要的朋友可以參考下2014-05-05
php獲取ip及網(wǎng)址的簡(jiǎn)單方法(必看)
下面小編就為大家?guī)?lái)一篇php獲取ip及網(wǎng)址的簡(jiǎn)單方法(必看)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-04-04

