php學習之道 php 流程控制語句

2021-06-22 15:16:02 字數 4445 閱讀 6625

php控制語句 

1、if語句 

if語句是多數語言中的乙個重要特點,它根據條件執行程式段。php的if語句類似於 c: 

if (expr) 

statement

正如在表示式中所論述, expr 被計算為它的真值。如果 expr 為true, php執行相應語句, 如果為false 則忽略它。 

如果$a 大於 $b,下例將顯示 』a is bigger than b』: 

if ($a >$b) 

print "a is bigger than b";

通常,你希望根據條件執行多於一條語句。當然,不需要給每條語句都加上 if 判斷。取而代之,可以把多條語句組成乙個語句組。 

if語句可以巢狀於其他 if語句中,使你能夠靈活地有條件的執行程式的各個部分。 

2、 else語句 

通常你希望滿足特定條件時執行一條語句,不滿足條件是執行另一條語句。else就是用來做這個的。else 擴充套件if語句,在if語句表示式為 false時執行另一條語句。例如, 下面程式執行如果 $a 大於 $b則顯示 』a is bigger than b』,否則顯示 』a is not bigger than b』: 

if ($a>$b)  

else

3、 elseif語句 

elseif,就象名字所示,是if和else的組合,類似於 else,它擴充套件 if 語句在if表示式為 false時執行其他的語句。但與else不同,它只在elseif表示式也為true時執行其他語句。 

可以在一條if語句中使用多條elseif語句。第乙個elseif表示式為true的語句將被執行。在php 3中,你也可以寫成 』else if』 (寫成兩個單詞)和 』elseif』 (寫成乙個單詞)效果一樣。這只是寫法上的細小差別(如果你熟悉 c,它也是),結果是完全一樣的。 

elseif語句僅在if表示式和任何前面的elseif表示式都為false,且當前elseif表示式為true時執行。 

下面是乙個含有elseif和else的巢狀格式的if語句: 

if ($a==5): 

print "a equals 5"; 

print "..."; 

elseif ($a==6): 

print "a equals 6"; 

print "!!!"; 

else: 

print "a is neither 5 nor 6"; 

endif;

4、 while語句 

while迴圈是php 3的一種簡單的迴圈。象在 c 中一樣。while語句的基本格式是: 

while(expr) statement 

while語句的意思非常簡單。它告訴php只要while表示式為true就重複執行巢狀的語句。每次迴圈開始時檢查while表示式的值,所以即使在巢狀語句內改變了它的值,本次執行也不會終止,而直到迴圈結束(每次php執行巢狀的語句稱為一次迴圈)。類似於if語句,你可以用大括號把一組語句括起來,在同乙個while迴圈中執行多條語句: 

while(expr): statement ... endwhile; 

下面例子完全相同, 都打出數字 1 到 10:

/* example 1 */ 

$i=1; 

while ($i0);

上面迴圈只執行一次, 因為第一次迴圈後,當檢查真值表示式時, 它算出來是 false ($i 不大於 0)迴圈執行終止。 

6、 for迴圈語句 

for迴圈是php中最複雜的迴圈。象在 c 中一樣。 for迴圈的語法是: 

for (expr1; expr2; expr3) statement 

第乙個表示式(expr1)在迴圈開始時無條件的計算(執行)。 

每一次迴圈, 表示式 expr2 都被計算。如果結果為 true, 則迴圈和巢狀的語句繼續執行。如果結果為 false,則整個迴圈結 束。 

每次迴圈結束時, expr3 被計算(執行). 每乙個表示式都可為空。expr2 為空則迴圈的次數不定(php 預設它為true,象c一樣)。除非你要通過乙個條件的 break語句代替for 的真值表示式來結束迴圈,否則不要這樣。 

考慮下面例子。它們都顯示數字 1 到 10: 

/* example 1 */ 

for ($i=1; $i10)  

print $i; 

} /* example 3 */ 

$i = 1; 

for (;;)  

print $i; 

$i++; 

} 當然,第乙個例子顯然是最好的,但藉此你可以發現在for 迴圈中很多場合可以使用空的表示式。 

其他的語言有一條foreach語句用來遍歷乙個陣列或雜湊(hash)表。php使用while語句和 list()、each() 函式來達到這個功能。

7、 switch選擇語句 

switch語句就象是對同乙個表示式的一系列if語句。在很多時侯,你想把同乙個變數(或者表示式)和許多不同的值去比較 ,並根據不同的比較結果執行不同的程式段。這就是 switch語句的用處了。 

下面兩個例子通過不同的方法做同一件事,乙個用一組 if語句,另外乙個用 switch 語句: 

/* example 1 */ 

if ($i == 0)  

if ($i == 1)  

if ($i == 2)  

/* example 2 */ 

switch ($i)

(二)、require語句 

require語句用指定的檔案代替自己,很象 c 中的預處理 #include 。 

這意味著你不能為了每次呼叫該函式來包含不同檔案的內容,而把require()語句放在乙個迴圈結構,。要這麼做,使用 include 語句。 

require(』header.inc』); 

(三)、 include語句 

include語句包含指定的檔案。 

每次遇到include是include語句就包含指定的檔案。所以你可以在乙個迴圈結構中使用include語句以包含一系列不同的檔案。 

$files = array(』first.inc』, 』second.inc』, 』third.inc』); 

for ($i = 0; $i items[$artnr] += $num; 

} // take $num articles of $artnr out of the cart 

function remove_item($artnr, $num) else  

} } 

?>

上面定義了乙個叫cart 的類,其中包括乙個關聯陣列和兩個用來從cart中增加和刪除專案的函式。 

類是實際變數的原始模型。你要通過new 操作符來建立乙個所需型別的變數。 

$cart = new cart; 

$cart->add_item("10", 1);

這建立起乙個 cart類的物件$cart。該物件的函式add_item()被呼叫來給第10項加 1。 

類可以從其他的類擴充得到。擴充或派生出來的類擁有基類的所有變數和函式及你在擴充定義中所定義的東西。這要使用 extends 關鍵字。 

class named_cart extends cart  

}這裡定義了乙個名為 named_cart 的類它繼承了 cart類所有變數和函式並增加了乙個變數 $owner和乙個函式 set_owner()。 你建立的 named_cart 類的變數現在就能設定carts 的 owner了。在named_cart變數中你仍然可以使用一般的 cart函式: 

$ncart = new named_cart; // create a named cart 

$ncart->set_owner("kris"); // name that cart 

print $ncart->owner; // print the cart owners name 

$ncart->add_item("10", 1); // (inherited functionality from cart)

函式中的變數 $this 意思是當前的物件。你需要使用 $this->something 的形式來訪問所有當前物件的變數或函式。 

類中的構造器是你建立某種類的新變數時自動被呼叫的函式。類中和類名一樣的函式就是構造器。 

class auto_cart extends cart  

}這裡定義乙個類 auto_cart ,它給 cart類加了乙個每次new操作時設定專案10進行變數初始化的構造器。構造器也可以有引數,這些引數是可選的,這種特點也使得其十分有用。 

class constructor_cart  

} // shop the same old boring stuff. 

$default_cart = new constructor_cart; 

// shop for real... 

$different_cart = new constructor_cart("20", 17); 

php流程控制

流程 1 if statements if expression i a 5 i b 4 if i a i b elseif i a i b else 2 邏輯運算子 i a 5 i b 4 i c 6 i d 7 if i a i b i c i d if i a i b i c i d 3 sw...

PHP流程控制

先導 php遍歷陣列的三種方式及其區別 使用for迴圈 使用foreach迴圈 使用while list each 組合迴圈 區別在於 for迴圈只能遍歷索引陣列 foreach迴圈既可以遍歷索引陣列也可以遍歷關聯陣列,會對陣列進行reset 操作,重置指標位置 第三種組合迴圈同樣可以遍歷索引陣列和...

PHP流程控制

單分支 if 表示式 header content type text html charset utf 8 防止在不同瀏覽器出現亂碼bug num 1 if num 1 if num 2 說明,當表示式成立的時候,執行語句,如果不成立直接結束if結構,繼續其後的語句執行 雙分支 if 表示式a e...