PHP 流量控制語句的替代文法
PHP 提供了一些流程式控制制的替代文法,包括 if,while,for,foreach 和 switch。替代文法的基本形式是把左花括弧({)換成冒號(:),把右花括弧(})分別換成endif;,endwhile;,endfor;,endforeach; 以及endswitch;。
elseif與 else if 只有在類似使用花括弧的情況下才認為是完全相同。如果用冒號來定義if/elseif 條件,那就不能用兩個單詞的 else if,否則 PHP 會產生解析錯誤。
foreach 文法結構提供了遍曆數組的簡單方式。foreach 僅能夠應用於數組和對象,如果嘗試應用於其他資料類型的變數,或者未初始化的變數將發出錯誤資訊。由於 foreach 依賴內部數組指標,在迴圈中修改其值將可能導致意外的行為。
foreach (array_expression as $value) statementforeach (array_expression as $key => $value) statement
require 和 include 幾乎完全一樣,除了處理失敗的方式不同之外。require 在出錯時產生 E_COMPILE_ERROR 層級的錯誤。換句話說將導致指令碼中止而 include 只產生警告(E_WARNING),指令碼會繼續運行。 相應的有require_once,include_once。
被包含檔案先按參數給出的路徑尋找,如果沒有給出目錄(只有檔案名稱)時則按照 include_path 指定的目錄尋找。如果在 include_path 下沒找到該檔案則 include 最後才在呼叫指令碼檔案所在的目錄和當前工作目錄下尋找。如果最後仍未找到檔案則 include 結構會發出一條警告;這一點和 require 不同,後者會發出一個致命錯誤。
如果定義了路徑——不管是絕對路徑(在 Windows 下以盤符或者 開頭,在 Unix/Linux 下以 / 開頭)還是目前的目錄的相對路徑(以 . 或者 .. 開頭)——include_path 都會被完全忽略。例如一個檔案以 ../ 開頭,則解析器會在目前的目錄的父目錄下尋找該檔案。
當一個檔案被包含時,其中所包含的代碼繼承了 include 所在行的變數範圍。從該處開始,調用檔案在該行處可用的任何變數在被調用的檔案中也都可用。不過所有在包含檔案中定義的函數和類都具有全域範圍。
vars.phptest.php
A is equal to 5 $b): echo a is bigger than b; echo ...; elseif($a == $b): echo a is equals b; else: echo a is smaller than b; endif; // While - do-while(0) $i = 1; while($i < 10): echo $i++. ; endwhile; // for for ($i = 10; $i <= 11; $i++): echo $i. .; endfor; // foreach $arr = array(1, 2, 3, 4, 5); foreach($arr as $key => & $value): $value += 2; echo Key1: $key => Value: $value.; endforeach; // 數組最後一個元素的 $val 引用在 foreach 迴圈之後仍會保留。建議使用 unset() 來將其銷毀。 unset($value); reset($arr); while (list($key, $value) = each($arr)): echo Key2: $key => Value: $value.; endwhile; // switch - goto $i = 1; switch ($i): case 0: echo i equals 0; break; case 1: echo i equals 1; break; case 2: echo i equals 2; break; endswitch; ?>
http://www.bkjia.com/PHPjc/1025014.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1025014.htmlTechArticlePHP 流量控制語句的替代文法 PHP 提供了一些流程式控制制的替代文法,包括 if,while,for,foreach 和 switch。替代文法的基本形式是把左花括弧(...