[1]if語句 [2]switch [3]while[4]do-while[5]for語句[6]foreach[7]break[8]continue[9]goto 任何 PHP 腳本都是由一系列語句構成的。一條語句可以是一個賦值語句,一個函數調用,一個迴圈,一個條件語句或者甚至是一個什麼也不做的語句 ...
目錄
[1]if語句 [2]switch [3]while[4]do-while[5]for語句[6]foreach[7]break[8]continue[9]goto 前面的話任何 PHP 腳本都是由一系列語句構成的。一條語句可以是一個賦值語句,一個函數調用,一個迴圈,一個條件語句或者甚至是一個什麼也不做的語句(空語句)。語句通常以分號結束。此外,還可以用花括弧將一組語句封裝成一個語句組。語句組本身可以當作是一行語句。本文將詳細介紹各種語句類型 if語句 if 結構是很多語言包括PHP在內最重要的特性之一,它允許按照條件執行代碼片段 if (條件) { 當條件為 true 時執行的代碼;}if (條件) { 條件為 true 時執行的代碼;} else { 條件為 false 時執行的代碼;}if (條件) { 條件為 true 時執行的代碼;} elseif (條件) { 條件為 true 時執行的代碼;} else { 條件為 false 時執行的代碼;}<?php$t=date("H");if ($t<"10") { echo "Have a good morning!";} elseif ($t<"20") { echo "Have a good day!";} else { echo "Have a good night!";}?>switch語句 switch語句類似於具有同一個表達式的一系列 if 語句。很多場合下需要把同一個變數(或表達式)與很多不同的值比較,並根據它等於哪個值來執行不同的代碼。這正是 switch 語句的用途 [註意]switch/case做的是鬆散比較 switch (expression){case label1: code to be executed if expression = label1; break; case label2: code to be executed if expression = label2; break;default: code to be executed if expression is different from both label1 and label2;}<?phpswitch ($x){case 1: echo "Number 1"; break;case 2: echo "Number 2"; break;case 3: echo "Number 3"; break;default: echo "No number between 1 and 3";}?>while語句 while 迴圈是 PHP 中最簡單的迴圈類型。while語句的含意很簡單,它告訴 PHP 只要 while 表達式的值為 TRUE 就重覆執行嵌套中的迴圈語句。表達式的值在每次開始迴圈時檢查,所以即使這個值在迴圈語句中改變了,語句也不會停止執行,直到本次迴圈結束。有時候如果 while 表達式的值一開始就是 FALSE,則迴圈語句一次都不會執行 while (expr) statement<?php$i = 1;while ($i <= 10) { echo $i++; }$i = 1;while ($i <= 10): print $i; $i++;endwhile;?>do-while do-while 迴圈和 while 迴圈非常相似,區別在於表達式的值是在每次迴圈結束時檢查而不是開始時。和一般的 while 迴圈主要的區別是 do-while 的迴圈語句保證會執行一次(表達式的真值在每次迴圈結束後檢查) do { 要執行的代碼;} while (條件為真);<?php$i = 0;do { echo $i;} while ($i > 0);?>for語句 for 迴圈是 PHP 中最複雜的迴圈結構。for迴圈語句中,初始化在迴圈開始前無條件求值一次,迴圈條件在每次迴圈開始前求值。如果值為true,則繼續迴圈,執行迴圈體語句;如果值為false,則終止迴圈。遞增語句在每次迴圈後執行 for (init counter; test counter; increment counter) { code to be executed;} <?php for ($x=0; $x<=10; $x++) { echo "數字是:$x <br>";} ?>foreach foreach語法結構提供了遍曆數組的簡單方式。foreach 僅能夠應用於數組和對象,如果嘗試應用於其他數據類型的變數,或者未初始化的變數將發出錯誤信息 每進行一次迴圈迭代,當前數組元素的值就會被賦值給$value變數,並且數組指針會逐一移動,直到到達最後一個數組元素。一般有兩種方式:不取下標、取下標 【1】只取值,不取下標 foreach ($array as $value) { code to be executed;} <?php $colors = array("red","green","blue","yellow"); foreach ($colors as $value) { echo "$value <br>";}?>【2】同時取下標和值 foreach ($array as $index => $value) { code to be executed;} <?php $colors = array( "r"=>"red", "g"=>"green", "b"=>"blue", "y"=>"yellow"); /*r:redg:greenb:bluey:yellow*/foreach ($colors as $key => $value) { echo $key.":".$value."<br>";}?>break break 結束當前 for,foreach,while,do-while 或者 switch 結構的執行 break 可以接受一個可選的數字參數來決定跳出幾重迴圈 $i = 0;while (++$i) { switch ($i) { case 5: echo "At 5<br />\n"; break 1; /* 只退出 switch. */ case 10: echo "At 10; quitting<br />\n"; break 2; /* 退出 switch 和 while 迴圈 */ default: break; }}continue continue 在迴圈結構用用來跳過本次迴圈中剩餘的代碼併在條件求值為真時開始執行下一次迴圈 continue 接受一個可選的數字參數來決定跳過幾重迴圈到迴圈結尾。預設值是 1,即跳到當前迴圈末尾 $i = 0;while ($i++ < 5) { echo "Outer<br />\n"; while (1) { echo "Middle<br />\n"; while (1) { echo "Inner<br />\n"; continue 3; } echo "This never gets output.<br />\n"; } echo "Neither does this.<br />\n";}goto goto 操作符可以用來跳轉到程式中的另一位置。該目標位置可以用目標名稱加上冒號來標記,而跳轉指令是 goto 之後接上目標位置的標記。PHP 中的 goto 有一定限制,目標位置只能位於同一個文件和作用域,也就是說無法跳出一個函數或類方法,也無法跳入到另一個函數。也無法跳入到任何迴圈或者 switch 結構中。可以跳出迴圈或者 switch,通常的用法是用 goto 代替多層的 break <?phpgoto a;echo 'Foo'; a://'Bar'echo 'Bar';?> |