標籤:
布爾型迴圈就是為真的時候執行,為假的時候停止
注意:
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流程式控制制(二)