這篇文章主要介紹了關於php流程控制之for語句,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
本文試用於基礎學習者,高手請關閉本頁
本文閱讀7分鐘,理解難者就不好說了?
(PHP 4, PHP 5, PHP 7)
for 迴圈是PHP 最複雜的迴圈結構。它的行為和 C 語言的相似。 for 迴圈的語法是:
for (expr1; expr2; expr3) statement
#第一個運算式()在迴圈開始前無條件求值(並且執行)一次。
在每次循環開始前求值。如果值為 TRUE
,則繼續循環,執行巢狀的循環語句。如果值為 FALSE
,則終止循環。
在每次循環之後被求值(並執行)。
每個表達式可以為空或包含逗號分隔的多個表達式。表達式 中,所有用逗號分隔的表達式都會計算,但只取最後一個結果。 為空意味著將無限循環下去(和 C 一樣,PHP 暗中認為其值為 TRUE
)。這可能不像想像中那麼沒用,因為常常會希望用有條件的 break 語句來結束迴圈而不是用 for 的表達式真值來判斷。
考慮以下的例子,它們都顯示數字1 到10:
<?php /* example 1 */ for ($i = 1; $i <= 10; $i++) { echo $i; } /* example 2 */ for ($i = 1; ; $i++) { if ($i > 10) { break; } echo $i; } /* example 3 */ $i = 1; for (;;) { if ($i > 10) { break; } echo $i; $i++; } /* example 4 */ for ($i = 1, $j = 0; $i <= 10; $j += $i, print $i, $i++); ?>
當然,第一個例子看起來最簡潔(或者有人認為是第四個),但用戶可能會發現在 for 循環中用空的表達式在許多場合下會很方便。
PHP 也支援用冒號的 for 迴圈的替代語法。
for (expr1; expr2; expr3): statement; ... endfor;
有時經常需要像下面這樣範例一樣對陣列進行遍歷:
<?php /* * 此数组将在遍历的过程中改变其中某些单元的值 */ $people = Array( Array('name' => 'Kalle', 'salt' => 856412), Array('name' => 'Pierre', 'salt' => 215863) ); for($i = 0; $i < count($people); ++$i) { $people[$i]['salt'] = rand(000000, 999999); } ?>
以上程式碼可能執行很慢,因為每次循環時都要計算一遍數組的長度。由於數組的長度始終不變,可以用一個中間變數來儲存數組長度以優化而不是不停呼叫 count()##:
<?php $people = Array( Array('name' => 'Kalle', 'salt' => 856412), Array('name' => 'Pierre', 'salt' => 215863) ); for($i = 0, $size = count($people); $i < $size; ++$i) { $people[$i]['salt'] = rand(000000, 999999); } ?>
以上是php流程控制之for語句的詳細內容。更多資訊請關注PHP中文網其他相關文章!