PHP常用控制結構
不要嘲笑鐵樹。為了開一次花,它付出了比別的樹種更長久的努力。 以下是小編為大家搜索整理了PHP常用控制結構,希望能給大家帶來幫助!更多精彩內容請及時關注我們應屆畢業生考試網!
控制結構
目錄 流程控制的替代語法
任何 PHP 腳本都是由一系列語句構成的。一條語句可以是一個賦值語句,一個函數調用,一個循環,一個條件語句或者甚至是一個什麼也不做的語句(空語句)。語句通常以分號結束。此外,還可以用花括號將一組語句封裝成一個語句組。語句組本身可以當作是一行語句。本章講述了各種語句類型。 if
if 結構是很多語言包括 PHP 在內最重要的特性之一,它允許按照條件執行代碼片段。PHP 的 if 結構和 C 語言相似:
if (expr)
statement
?>
expr 按照布爾求值。如果 expr 的值為 TRUE,PHP 將執行 statement,如果值為 FALSE - 將忽略 statement。有關哪些值被視為 FALSE 的更多信息參見轉換為布爾值一節。
如果 $a 大於 $b,則以下例子將顯示 a is bigger than b:
if ($a > $b)
echo "a is bigger than b";
?>
經常需要按照條件執行不止一條語句,當然並不需要給每條語句都加上一個 if 子句。可以將這些語句放入語句組中。例如,如果 $a 大於 $b,以下代碼將顯示 a is bigger than b 並且將 $a 的值賦給 $b:
if ($a > $b) {
echo "a is bigger than b";
$b = $a;
}
?>
if 語句可以無限層地嵌套在其它 if 語句中,這給程序的不同部分的條件執行提供了充分的彈性。
: 語言參考 : 控制結構 else
經常需要在滿足某個條件時執行一條語句,而在不滿足該條件時執行其它語句,這正是 else 的功能。else 延伸了 if 語句,可以在 if 語句中的表達式的值為 FALSE 時執行語句。例如以下代碼在 $a 大於 $b 時顯示 a is bigger than b,反之則顯示 a is NOT bigger than b: copy to clipboard
if ($a > $b) {
echo "a is bigger than b";
} else {
echo "a is NOT bigger than b";
}
?>
else 語句僅在 if 以及 elseif(如果有的話)語句中的表達式的值為 FALSE 時執行(參見 elseif)。
<< 控制結構 Main : 語言參考 : 控制結構 : else This page online Report a bug elseif >> elseif
elseif,和此名稱暗示的一樣,是 if 和 else 的組合。和 else 一樣,它延伸了 if 語句,可以在原來的 if 表達式值為 FALSE 時執行不同語句。但是和 else 不一樣的是,它僅在 elseif 的條件表達式值為 TRUE 時執行語句。例如以下代碼將根據條件分別顯示 a is bigger than b,a equal to b 或者 a is smaller than b: copy to clipboard
if ($a > $b) {
echo "a is bigger than b";
} elseif ($a == $b) {
echo "a is equal to b";
} else {
echo "a is smaller than b";
}
?>
在同一個 if 結構中可以有多個 elseif 語句。第一個表達式值為 TRUE 的 elseif 語句(如果有的話)將會執行。在 PHP 中,也可以寫成“else if”(兩個單詞),它和“elseif”(一個單詞)的行為完全一樣。句法分析的含義有少許區別(如果你熟悉 C 語言的話,這是同樣的行為),但是底線是兩者會產生完全一樣的行為。
elseif 的語句僅在之前的 if 或 elseif 的表達式值為 FALSE,而當前的 elseif 表達式值為 TRUE 時執行。
Main : 語言參考 : 控制結構 : elseif This page online Report a bug 流程控制的替代語法 >> << else 流程控制的替代語法
PHP 提供了一些流程控制的替代語法,包括 if,while,for,foreach 和 switch。替代語法的基本形式是把左花括號({)換成冒號(:),把右花括號(})分別換成 endif;,endwhile;,endfor;,endforeach; 以及 endswitch;。 copy to clipboard
A is equal to 5
在上面的例子中,HTML 內容“A is equal to 5”用替代語法嵌套在 if 語句中。該 HTML 的內容僅在 $a 等於 5 時顯示。
替代語法同樣可以用在 else 和 elseif 中。下面是一個包括 elseif 和 else 的 if 結構用替代語法格式寫的例子: copy to clipboard
if ($a == 5):
echo "a equals 5";
echo "...";
elseif ($a == 6):
echo "a equals 6";
echo "!!!";
else:
echo "a is neither 5 nor 6";
endif;
?>
更多例子參見 while,for 和 if。
Main : 語言參考 : 控制結構 : 流程控制的替代語法 This page online Report a bug << elseif while >> while
while 循環是 PHP 中最簡單的循環類型。它和 C 語言中的 while 表現得一樣。while 語句的基本格式是: copy to clipboard
while (expr)
statement
while 語句的含意很簡單,它告訴 PHP 只要 while 表達式的值為 TRUE 就重複執行嵌套中的循環語句。表達式的值在每次開始循環時檢查,所以即使這個值在循環語句中改變了,語句也不會停止執行,直到本次循環結束。有時候如果 while 表達式的值一開始就是 FALSE,則循環語句一次都不會執行。
和 if 語句一樣,可以在 while 循環中用花括號括起一個語句組,或者用替代語法: copy to clipboard
while (expr):
statement
...
endwhile;
下面兩個例子完全一樣,都顯示數字 1 到 10: copy to clipboard
/* example 1 */
$i = 1;
while ($i <= 10) {
echo $i++; /* the printed value would be
$i before the increment
(post-increment) */
}
/* example 2 */
$i = 1;
while ($i <= 10):
print $i;
$i++;
endwhile;
?>
<< 流程控制的替Main : 語言參考 : 控制結代語法 構 : while This page online Report a bug
do-while do-while >>
do-while 和 while 循環非常相似,區別在於表達式的值是在每次循環結束時檢查而不是開始時。和正規的 while 循環主要的區別是 do-while 的循環語句保證會執行一次(表達式的真值在每次循環結束後檢查),然而在正規的 while 循環中就不一定了(表達式真值在循環開始時檢查,如果一開始就為 FALSE 則整個循環立即終止)。
do-while 循環只有一種語法: copy to clipboard
$i = 0;
do {
echo $i;
} while ($i > 0);
?>
以上循環將正好運行一次,因為經過第一次循環後,當檢查表達式的真值時,其值為 FALSE($i 不大於 0)而導致循環終止。
資深的 C 語言用户可能熟悉另一種不同的 do-while 循環用法,把語句放在 do-while(0) 之中,在循環內部用 break 語句來結束執行循環。以下代碼片段示範了此方法: copy to clipboard
do {
if ($i < 5) {
echo "i is not big enough";
break;
}
$i *= $factor;
if ($i < $minimum_limit) {
break;
}
echo "i is ok";
/* process i */
} while(0);
?>
如果還不能立刻理解也不用擔心。即使不用此“特性”也照樣可以寫出強大的代碼來。
for
copy to clipboard
for (expr1; expr2; expr3)
statement
第一個表達式(expr1)在循環開始前無條件求值一次。
expr2 在每次循環開始前求值。如果值為 TRUE,則繼續循環,執行嵌套的循環語句。如果值為 FALSE,則終止循環。
expr3 在每次循環之後被求值(執行)。
每個表達式都可以為空。expr2 為空意味着將無限循環下去(和 C 一樣,PHP 認為其值為 TRUE)。這可能不像想象中那樣沒有用,因為經常會希望用 break 語句來結束循環而不是用 for 的表達式真值判斷。
考慮以下的例子,它們都顯示數字 1 到 10: copy to clipboard
/* 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; $i <= 10; echo $i, $i++);
?>
當然,第一個例子看上去最正常(或者第四個),但用户可能會發現在 for 循環中用空的表達式在很多場合下會很方便。
PHP 也支持用冒號的 for 循環的替代語法。 copy to clipboard
for (expr1; expr2; expr3):
statement;
...
endfor; << do-while Main : 語言參考 : 控制結構 : for This page online Report a bug foreach >> foreach
-
PHP中多態如何實現
PHP是一種HTML內嵌式的,用來製作動態網頁的服務器端的腳本語言。以下是本站小編整理的PHP中多態如何實現的內容,歡迎學習!1PHP語言介紹PHP是一種HTML內嵌式的,用來製作動態網頁的服務器端的腳本語言。其特點是:開發週期短,穩定安全,簡單易學,免費開源,良好的跨平台特性...
-
php統計數組元素個數的方法
PHP是一種HTML內嵌式的語言,是一種在服務器端執行的嵌入HTML文檔的腳本語言,語言的.風格有類似於C語言,被廣泛地運用。下面是小編為大家搜索整理的php統計數組元素個數的方法,希望大家能有所收穫,更多精彩內容請及時關注我們應屆畢業生考試網!count():對數組中的元...
-
2017年PHP錯誤總結範文
導語:如果你還是PHP新手的話,不妨就找些PHP錯誤點來看看。下面的是本站小編為大家蒐集的2017年PHP錯誤總結,供大家參考。錯誤總結PHP-不斷更新(新手必看)做開發請開啟全部錯誤提示:error_reporting=E_ALL|E_STRICT屏蔽錯誤提示等於掩耳盜鈴。代碼寫規範,錯誤少一半...
-
php通過sudo執行root指令
PHP是一種很強大的語言,那麼下面就一起來看他在指令方面的應用吧!下面是本站小編精心為大家整理的php通過sudo執行root指令,希望對大家學習有幫助,更多內容請關注應屆畢業生網!1.高級的用法如限制主機、用户組、命令組的用法可以參照下面的規則,詳細可參看"mansudo...