php循環語句for()與foreach()用法區別
php循環語句 for()與foreach()用法有什麼區別?下面我用兩個實例來介紹一下關於在php中foreach與for語句用法區別介紹,有需要的朋友可參考一下。
for 循環是 PHP 中最複雜的循環結構。它的行爲和 C 語言的相似。 for 循環的語法是:
for (expr1; expr2; expr3) statement
第一個表達式(expr1)在循環開始前無條件求值一次。
expr2 在每次循環開始前求值。如果值爲 TRUE,則繼續循環,執行嵌套的循環語句。如果值爲 FALSE,則終止循環。
expr3 在每次循環之後被求值(執行)。
每個表達式都可以爲空。expr2 爲空意味着將無限循環下去(和 C 一樣,PHP 認爲其值爲 TRUE)。這可能不想你想象中那樣沒有用,因爲你經常會希望用 break 語句來結束循環而不是用 for 的表達式真值判斷。
考慮以下的例子。它們都顯示數字 1 到 10:
複製代碼 代碼如下:
<?php
for ($i = 1; $i <= 10; $i++) {
print $i;
}
for ($i = 1; ; $i++) {
if ($i > 10) {
break;
}
print $i;
}
$i = 1;
for (;;) {
if ($i > 10) {
break;
}
print $i;
$i++;
}
for ($i = 1; $i <= 10; print $i, $i++);
?>
當然,第一個例子看上去最正常(或者第四個),但你可能會發現在 for 循環中用空的表達式在很多場合下會很方便。
PHP 也支持用冒號的 for 循環的替代語法。
for (expr1; expr2; expr3): statement; ...; endfor;
其它語言具有 foreach 語句來遍歷數組或散列表,PHP 也行(見 foreach)。在 PHP 3 中,可以結合 list()和 each() 函數用 while 循環來達到同樣效果。例子見這些函數的文檔。foreach
PHP 4(不是 PHP 3)包括了 foreach 結構,和 Perl 以及其他語言很像。這只是一種遍歷數組簡便方法。foreach 僅能用於數組,當試圖將其用於其它數據類型或者一個未初始化的變量時會產生錯誤。有兩種語法,第二種比較次要但卻是第一種的有用的擴展。
foreach (array_expression_r_r as $value) statement foreach (array_expression_r_r as $key => $value) statement
第一種格式遍歷給定的 array_expression_r_r 數組。每次循環中,當前單元的值被賦給 $value 並且數組內部的指針向前移一步(因此下一次循環中將會得到下一個單元)。
第二種格式做同樣的事,只除了當前單元的鍵值也會在每次循環中被賦給變量 $key。
注: 當 foreach 開始執行時,數組內部的`指針會自動指向第一個單元。這意味着不需要在 foreach 循環之前調用 reset()。
注: 此外注意 foreach 所操作的是指定數組的一個拷貝,而不是該數組本身。因此即使有 each() 的構造,原數組指針也沒有變,數組單元的值也不受影響。
注: foreach 不支持用“@”來禁止錯誤信息的能力。
你可能注意到了以下的代碼功能完全相同:
複製代碼 代碼如下:
<?php
$arr = array("one", "two", "three");
reset ($arr);
while (list(, $value) = each ($arr)) {
echo "Value: $value<br>n";
}
foreach ($arr as $value) {
echo "Value: $value<br>n";
}
?>
以下代碼功能也完全相同:
複製代碼 代碼如下:
<?php
reset ($arr);
while (list($key, $value) = each ($arr)) {
echo "Key: $key; Value: $value<br>n";
}
foreach ($arr as $key => $value) {
echo "Key: $key; Value: $value<br>n";
}
?>
示範用法的更多例子:
複製代碼 代碼如下:
<?php
$a = array (1, 2, 3, 17);
foreach ($a as $v) {
print "Current value of $a: $v.n";
}
$a = array (1, 2, 3, 17);
$i = 0;
foreach ($a as $v) {
print "$a[$i] => $v.n";
相關文章
-
深入解析PHP中foreach語句控制數組循環
深入解析PHP中foreach語句控制數組循環的用法,是PHP入門學習中的基礎知識,需要的朋友可以參考下。 foreach是PHP中很常用的一個用作數組循環的控制語句因爲它的方便和易用,自然也就在後端隱藏着很複雜的具體實現方 -
PHP循環語句用法之—for循環
我們可以設置一個計數器來開始循環。在每次迭代開始的時候,將在條件表達式中測試計數器。在循環的結束處,將修改計數器內容。使用for循環,可以編寫一個更爲簡潔和緊湊的代碼來完成這種循環操作。for循環的`基本結構如下, -
如何在PHP中處理Protocol Buffers數據
Protocol Buffers是Google定義的一種跨語言、跨平臺、可擴展的數據傳輸及存儲的協議,因爲將字段協議分別放在傳輸兩端,傳輸數據中只包含數據本身,不需要包含字段說明,所以傳輸數據量小,解析效率高。如何在PHP中處理Protoco -
如何在PHP中處理Protocol Buffers數據大綱
我們知道Protocol Buffers是Google定義的一種跨語言、跨平臺、可擴展的數據傳輸及存儲的協議,因爲將字段協議分別放在傳輸兩端,傳輸數據中只包含數據本身,不需要包含字段說明,所以傳輸數據量小,解析效率高。感興趣的可以訪 -
The Power of Cooperation英語作文
合作的力量 The Power of CooperationI was used to do things by my own, because I did not like to cooperate with other person, for I thought it was so easy and quick for me to finish the job. But since -
Efforts Urged to Improve Womens Reproductive Health英語閱讀
Efforts Urged to Improve Women's Reproductive HealthParliamentarians from over 100 countries are being urged to take action in improving women's reproductive health ahead of the 2015 deadline -
PHP for 循環語句的運用
引導語:for 循環語句初始化總是一個賦值語句, 它用來給循環控制變量賦初值,以下是小編整理的PHP for 循環語句的.運用,歡迎參考閱讀! PHP for 循環如果您已經提前確定腳本運行的次數,可以使用 for 循環。 語法for ( -
PHP中for循環語句的幾種“變態”用法
for語句可以說是PHP(同時也是多種語言)的循環控制部份最基本的一個語句了,for語句的執行規律和基礎用法在這裏就不多說,可以參見PHP手冊for語句部分。下面就來和小編一起看看PHP中for循環語句的幾種“變態”用法吧。PHP -
少兒英語小故事:She Practices Flips for the Olympic
She does handstands. She does cartwheels. She does flips. She does back flips and front flips. She does somersaults. She trains every day. She is a gymnast. She practices for the Olympics. The Olympic -
託福口語練習之Whichonedoyouprefer
在學習、工作或生活中,要用到祝福語的情況還是蠻多的,祝福語可以增進我們和他人的情感交流。你所知道的祝福語是都是什麼樣子的?下面是小編精心整理的祝自己生日祝福語,歡迎閱讀與收藏。祝自己生日祝福語11、18歲,一個花一