PHP流程式控制制(二)

來源:互聯網
上載者:User

標籤:

布爾型迴圈就是為真的時候執行,為假的時候停止

注意:
1.迴圈能夠節約大量的代碼,提高重用性質
2.迴圈,一定要有允出準則。
3.While迴圈中,在while迴圈之前必須對變數進行初始化;

 

單層迴圈:文法結構

While(bool判斷){                                                                                                            Echo ‘要迴圈的代碼‘;  //可以是一條語句,也可以是多條語句;                                                                 }

 

<?php$a=0; //對變數初始化設定while($a<3){  echo:‘今天天氣真好<br>‘;  echo $a++;}?>

 

多層迴圈:文法結構

While(bool判斷){     while(bool判斷){第二層迴圈的代碼;}                                                                                                       第一層要迴圈的代碼;                                                              }

 

注意:
在迴圈裡再套迴圈。一般迴圈,不會超過二層。


使用while雙層迴圈輸出一個10行10列的表格:

<?php $i=0echo ‘<>table border="1" width="800">‘;while ($i<10) {        if($i%2!=0){                echo ‘<tr bgcolor="#898989">‘;        }else{                echo ‘<tr>‘;                  }        $j=0;        while ($j<10) {                echo ‘<td>‘.$j.‘</td>‘;                $j++;        }        echo ‘</tr>‘;        $i++            }echo ‘</table>‘; ?>

 

使用while單層迴圈輸出一個10行10列的表格:

 

<?php echo ‘<table border="1" width="800">‘;$i=0;while ($i<100) {                  //這裡要為100才可以        if ($i%10==0) {          if ($i%20!=0) {         //也可以寫if($i/10%2!=0)            echo ‘<tr bgcolor="#898989">‘;    //隔行變色          }else {            echo ‘<tr>‘;          }  }            echo ‘<td>‘.$i.‘</td>‘;          if ($i%10==9) {       //這裡要是19、29、39、49....99的時候輸出<tr>            echo ‘</tr>‘;          }          $i++;}echo ‘</table>‘; ?>

 

 

do { } while { }迴圈:

<?php $i=0;do {  echo ‘需要可執行代碼‘;} while ($i<10); ?>

 

文法注意:
do while和while迴圈非常相似,區別在於運算式的值是在每次迴圈結束時檢查而不是開始時。和正則的while迴圈主要的區別是do while的迴圈語句保證會執行一次(運算式的真值在每次迴圈結束後檢查),然而在正則的while迴圈中就不一定了(運算式真值在迴圈開始時檢查,如果一開始就為False則整個迴圈立刻終止)。

 

計數器迴圈

例子1:初始設定變數

<?phpfor ($i = 1; $i <= 10; $i++) {    echo $i;}?>

 

例子2:允出準則

<?phpfor ($i = 1; ; $i++) {    if ($i > 10) {        break;    }    echo $i;}  ?>

 

例子3:迴圈添加,自增自減等

<?php$i = 1;for (;;) {    if ($i > 10) {        break;    }    echo $i;    $i++;}?>

 

例子4:

<?phpfor ($i = 1, $j = 0; $i <= 10; $j += $i, print $i, $i++);?>

當然,第一個例子看上去最正常(或者第四個),但使用者可能會發現在 for 迴圈中用空的運算式在很多場合下會很方便。

 

文法:

每個運算式都可以為空白或包括逗號分隔的多個運算式。運算式 expr2 中,所有用逗號分隔的運算式都會計算,但只取最後一個結果。expr2 為空白意味著將無限迴圈下去(和 C 一樣,PHP 認為其值為 TRUE)。

 

使用迴圈遍曆數組:

$arr[$i]:獲得數組中對應鍵的值
count() - 計算數組中的單元數目或對象中的屬性個數

$arr=array(1,2,3,4,5,6,7,8,9,);echo count($arr); //統計數組中的元素的個數

 

擴充:

 

PHP是它是解釋型語言,它的效率相對較低。對於迴圈時的count每次都會count這樣的話,效率很低。
我們可以將,統計到的數值,直接賦值給一個變數,判斷這個變數就可以了,減少統計次數。
提前 $j 到前面

for($i=0,$j=count($aray);$i<$j;$i++){  echo ‘金融跟每個人相關‘.$array[$i].‘<br>‘;
}

 

<?php $arr=array("張三","李四");for ($i=0; $j=count($arr);$i<$j;$i++){  echo $arr[$i].‘<br>‘;  } ?>

 

【重點】使用迴圈遍曆目錄

首先需要掌握的函數有:
opendir — 開啟開一個目錄,返回一個資源類型,如果成功則返回目錄控制代碼的 resource,失敗則返回 FALSE 並且報錯 使用@抑錯
Is_dir — 判斷給定的檔案名稱是否是一個目錄;
Closedir — 關閉目錄,傳入一個開啟的目錄資源
Readdir — 【 NOTICE:填入一個已經用opendir開啟的檔案目錄資源】

傳進一個目錄資源,返回開啟的目錄名稱,讀一次向下移動一次,讀到目錄的最後一個檔案後,返回false
Count — 可以統計數組當中的元素個數【此函數的別名:sizeof() 】
 
例子:

 

<?php $dir=‘c:\xmzncc‘;$tkp=opendir($dir);var_dump($tkp);while ($filename=readdir($tkp)) {  echo $filename.‘<br>‘;}closedir($tkp); ?>

 


函數分為:自訂函數及系統函數

自定函數的基本文法格式:

 <?php function 名字(參數1[=值],參數2[=值],…..參數n[=值]){  做事情的代碼    //return ; }?>

 

命名函數需要注意的事項:

 

1.名字不能重複,不能重名。
2.函數就是一條狗,不叫它名字,它不執行。
3.函數不要重名,即使是系統函數
4.函數不能以數字開始,數字可以接到中間和結尾
5.不能接特殊符號,底線除外
6.函數在命名的時候,只有數字,字母,底線
7.函數名不區分大小寫
8.函數可以在任意位置調用【注意】

 

函數裡return和echo的區別:
在函數裡面,echo一個值僅僅會輸出,調用函數的時候,輸出的值不會賦值給變數$a
Return 是將return 後面的值,返回到調用處。

 

例子:

<?phpfunction seven(){     echo ‘夏末終年‘;}$a=seven();var_dump($a);?>

 

注釋:
$a=seven( ) //這裡的函數是echo一個值的作用僅僅是輸出 函數裡echo 後的代碼

這是 函數沒有傳回值 只有一個功能 輸出的值不能賦給變數 var_dump($a) 為空白; NULL

(Return 後的值會返回調用處)此時值可以賦給變數 ,此時$a變數的值和類型由return 返回的值得類型決定 。

 

函數的形參及實參:

<?phpFunction  demo( $one , $two ){  //$one 及 $two 為形參 return $one+$two;}$t= demo  ( 8, 9 );    //傳入的 8 和 9為實參 並把函數 計算 8+9的值賦給$t?>

 

注意:
1.如果調用一個函數的時候,函數當中有形參,形參當中沒有預設值,你就必須要傳實參,否則報錯。
2.神馬叫形參當中木有預設值?
3.如果形參有預設值,並且在實參當中沒有傳參數,就按照預設值來執行。如果加上了實參,就按照實參來執行。

注意:
由於它一一對應的關係,由於它的文法特性,不能將有預設值的用逗號直接跳過去。因此,我們在寫的時候,將有預設值的放到後面,無預設值的形參放到前面。

 

PHP流程式控制制(二)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.