在之前的文章《PHP數(shù)組學(xué)習(xí)之聊聊輸出數(shù)組的幾種方法》中我們以foreach語(yǔ)句為例,簡(jiǎn)單提了一下循環(huán)語(yǔ)句。在接下來(lái)我們通過(guò)一系列的文章來(lái)了解下PHP中的循環(huán)控制語(yǔ)句,保證你一看就懂,快來(lái)一起學(xué)習(xí)吧!
本篇文章先來(lái)給大家介紹一下PHP中最簡(jiǎn)單的循環(huán)語(yǔ)句–while循環(huán)語(yǔ)句,分析語(yǔ)法格式和執(zhí)行過(guò)程,通過(guò)代碼實(shí)例了解一下它的使用方法。后續(xù)的文章會(huì)慢慢加深難度,了解其他的循環(huán)語(yǔ)句。(附視頻教程:從0開(kāi)始進(jìn)入PHP的世界)
while循環(huán)語(yǔ)句是一種當(dāng)型
循環(huán)語(yǔ)句,先對(duì)循環(huán)條件進(jìn)行判斷,當(dāng)條件滿(mǎn)足,則執(zhí)行循環(huán)體,不滿(mǎn)足時(shí)則停止。
作用:反復(fù)執(zhí)行某一項(xiàng)操作,直到指定的條件不成立。(附手冊(cè):PHP While 循環(huán))
特點(diǎn):先判斷表達(dá)式,當(dāng)表達(dá)式結(jié)果為真時(shí)執(zhí)行相應(yīng)的語(yǔ)句。
while循環(huán)的一般形式為:
while(表達(dá)式){ //表達(dá)式為循環(huán)條件 PHP語(yǔ)句塊; //PHP語(yǔ)句塊為循環(huán)體 }
語(yǔ)句解析:
-
先計(jì)算“表達(dá)式”的值,當(dāng)值為真時(shí), 執(zhí)行循環(huán)體內(nèi)的“PHP語(yǔ)句塊”;
說(shuō)明:“表達(dá)式”的計(jì)算結(jié)果是布爾類(lèi)型( TRUE 或 FALSE)的,如果是其他類(lèi)型的值也會(huì)自動(dòng)轉(zhuǎn)換為布爾類(lèi)型的值(因?yàn)镻HP是弱語(yǔ)言類(lèi)型,會(huì)根據(jù)變量的值,自動(dòng)把變量轉(zhuǎn)換為正確的數(shù)據(jù)類(lèi)型)。
“語(yǔ)句塊”就是由
{ }
包圍的一個(gè)或多個(gè)語(yǔ)句的集合;如果語(yǔ)句塊中只有一個(gè)語(yǔ)句,也可以省略{ }
。 -
執(zhí)行結(jié)束后,返回到表達(dá)式,再次計(jì)算表達(dá)式的值進(jìn)行判斷,當(dāng)表達(dá)式值為真,則繼續(xù)執(zhí)行“語(yǔ)句塊”……這個(gè)過(guò)程會(huì)一直重復(fù)
-
直到表達(dá)式的值為假時(shí)才跳出循環(huán),執(zhí)行while 下面的語(yǔ)句。
while語(yǔ)句的流程圖如下所示:
通常“表達(dá)式”是使用比較運(yùn)算符或者邏輯運(yùn)算符計(jì)算后的值
示例:計(jì)算1加到100的值
<?php header("Content-type:text/html;charset=utf-8"); $i = 1; $sum=0; while($i<=100){ $sum+=$i; $i++; } echo "1加到100的值為:".$sum ; ?>
輸出結(jié)果:
1加到100的值為:5050
注:“死循環(huán)”–無(wú)法靠自身的控制終止的循環(huán)
如果表達(dá)式一直為真,循環(huán)條件一直成立,則while 循環(huán)會(huì)一直執(zhí)行下去,永不結(jié)束,成為“死循環(huán)”
<?php $i=1; while($i){ echo $i; } ?>
運(yùn)行程序后,會(huì)一直輸出變量$i
的值,直到用戶(hù)強(qiáng)制關(guān)閉。
推薦:《2021年P(guān)HP面試題大匯總(收藏)》《php視頻教程》