国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

Php入門教程之PHP 循環語句使用方法

2024-05-04 23:07:12
字體:
來源:轉載
供稿:網友

循環語句在php中很多種,包括有如:for,foreach,while,do while,list,each等等這些都可以用在我們開發中,下面我來介紹常用的PHP循環語句

今天就是PHP基礎知識的最后兩篇文章,目的很簡單就是讓大家對PHP有個初步的認識,這篇主要說下PHP循環,它用于執行相同的代碼塊指定的次數.為我們的開發節省時間.

循環,在您編寫代碼時,您經常需要讓相同的代碼塊運行很多次.您可以在代碼中使用循環語句來完成這個任務.

在 PHP 中,我們可以使用下列循環語句:

while

    只要指定的條件成立,則循環執行代碼塊

do…while

    首先執行一次代碼塊,然后在指定的條件成立時重復這個循環

for

    循環執行代碼塊指定的次數

foreach

    根據數組中每個元素來循環代碼塊

while 語句

只要指定的條件成立,while 語句將重復執行代碼塊.

語法:

  1. while (condition) 
  2. code to be executed; 

例子

下面的例子示范了一個循環,只要變量 i 小于或等于 5,代碼就會一直循環執行下去.循環每循環一次,變量就會遞增 1:

實例代碼如下:

  1. <html> 
  2. <body> 
  3. <?php 
  4. $i=1; 
  5. while($i<=5) 
  6.   { 
  7.   echo "The number is " . $i . "<br />"
  8.   $i++; 
  9.   } 
  10. ?> 
  11. </body> 
  12. </html> 

do…while 語句

do…while 語句會至少執行一次代碼 – 然后,只要條件成立,就會重復進行循環.

語法

  1. do 
  2.  { 
  3.  code to be executed; 
  4.  } 
  5.  while (condition); 

例子

下面的例子將對 i 的值進行一次累加,然后,只要 i 小于 5 的條件成立,就會繼續累加下去:

實例代碼如下:

  1. <html> 
  2. <body> 
  3. <?php 
  4. $i=0; 
  5. do 
  6.   { 
  7.   $i++; 
  8.   echo "The number is " . $i . "<br />"
  9.   } 
  10. while ($i<5); 
  11. ?> 
  12. </body> 
  13. </html> 

for 語句

如果您已經確定了代碼塊的重復執行次數,則可以使用 for 語句. 

  1. for (initialization; condition; increment) 
  2.  
  3.  { 
  4.    code to be executed; 

注釋:for 語句有三個參數.第一個參數初始化變量,第二個參數保存條件,第三個參數包含執行循環所需的增量.如果 initialization 或 increment 參數中包括了多個變量,需要用逗號進行分隔.而條件必須計算為 true 或者 false.

 

下面的例子會把文本 “Hello World!” 顯示 5 次:

實例代碼如下:

  1. <html> 
  2. <body> 
  3. <?php 
  4. for ($i=1; $i<=5; $i++) 
  5.   echo "Hello World!<br />"
  6. ?> 
  7. </body> 
  8. </html> 

foreach 語句

foreach 語句用于循環遍歷數組.每進行一次循環,當前數組元素的值就會被賦值給 value 變量(數組指針會逐一地移動) – 以此類推.

語法

  1. foreach (array as value) 
  2.  { 
  3.      code to be executed; 
  4.  } 

下面的例子示范了一個循環,這個循環可以輸出給定數組的值:

實例代碼如下:

  1. <html> 
  2. <body> 
  3. <?php 
  4. $arr=array("one""two""three"); 
  5. foreach ($arr as $value
  6.   echo "Value: " . $value . "<br />"
  7. ?> 
  8. </body> 
  9. </html> 

一個遍歷目錄函數實例代碼如下:

  1. <?php    
  2. /*   
  3. *   遞歸獲取指定路徑下的所有文件或匹配指定正則的文件(不包括“.”和“..”),結果以數組形式返回   
  4. *   @param  string  $dir   
  5. *   @param  string  [$pattern]   
  6. *   @return array   
  7. */    
  8. function file_list($dir,$pattern="")    
  9. {    
  10.     $arr=array();    
  11.     $dir_handle=opendir($dir);    
  12.     if($dir_handle)    
  13.     {    
  14.         // 這里必須嚴格比較,因為返回的文件名可能是“0”     
  15.         while(($file=readdir($dir_handle))!==false)    
  16.         {    
  17.             if($file==='.' || $file==='..')    
  18.             {    
  19.                 continue;    
  20.             }    
  21.             $tmp=realpath($dir.'/'.$file);    
  22.             if(is_dir($tmp))    
  23.             {    
  24.                 $retArr=file_list($tmp,$pattern);    
  25.                 if(!emptyempty($retArr))    
  26.                 {    
  27.                     $arr[]=$retArr;    
  28.                 }    
  29.             }    
  30.             else    
  31.             {    
  32.                 if($pattern==="" || preg_match($pattern,$tmp))    
  33.                 {    
  34.                     $arr[]=$tmp;    
  35.                 }    
  36.             }    
  37.         }    
  38.         closedir($dir_handle);    
  39.     }    
  40.     return $arr;    
  41. }    
  42.     
  43. // 列出網站根目錄下所有以".php"擴展名(不區分大小寫)結尾的文件     
  44. echo '<pre>';    
  45. print_r(file_list($_SERVER['DOCUMENT_ROOT'],"//.php$/i"));    
  46. echo '</pre>';    
  47. ?>    

這個就可以方便的無限目錄遍歷了..

foreach與while性能比較

在循環里進行的是數組“讀”操作,則foreach比while快:

在循環里進行的是數組“寫”操作,則while比foreach快

實例代碼如下:
  1. /**  
  2.  * while跟foreach函數性能比較  
  3.  *  
  4.  */ 
  5.    
  6. // foreach 函數  
  7. foreach ($array as $key => $value) {  
  8.     echo $array[$key] = $value . '...';  
  9. }  
  10.    
  11. // while 函數  
  12. while (list($key) = each($array)) {  
  13.     $array[$key] = $array[$key] . '...';  

總結:通常認為,foreach涉及到值復制,一定會比while慢,但實際上,如果僅僅是在循環里進行數組的讀操作,那么foreach是很快的,這是因為PHP采用的復制機制是“引用計數,寫時復制”,也就是說,即便在PHP里復制一個變量,最初的形式從根本上說其實仍然是引用的形式,只有當變量的內容發生變化時,才會出現真正的復制,之所以這么做是出于節省內存消耗得目的,同時也提升了復制的效率.這樣看來,foreach的高效讀操作就不難理解了.另外,既然foreach不適合處理數組寫操作,那么我們可以得出一個結論,多數情況下,類似foreach ($array as $key => $value)形式的做數組寫操作得代碼都應該被替換成while (list($key) =each($array)).這些技巧產生的速度差異在小項目里可能并不明顯,但是在類似框架這樣的大項目中,一次請求動輒便會涉及到幾百幾千幾萬次數組循環操作,差異就會明顯放大.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 兴安县| 松桃| 徐州市| 黄山市| 云霄县| 师宗县| 饶河县| 乌兰浩特市| 从江县| 吴桥县| 商都县| 新疆| 高邮市| 崇义县| 泸州市| 绥芬河市| 高碑店市| 建瓯市| 温宿县| 山西省| 璧山县| 永和县| 鄂尔多斯市| 衡阳市| 高平市| 福鼎市| 吴旗县| 龙口市| 常山县| 基隆市| 屏东市| 琼结县| 土默特右旗| 永川市| 拉萨市| 启东市| 东辽县| 庆云县| 扎兰屯市| 信丰县| 盖州市|