--- title: 基本教學 tags: PHP基礎課程 --- 基本教學 === 變數 --- 1. 以$做開頭 2. 盡量用有意義的英文單字命名 3. 必須由英文字母+數字或底線組成 4. 名稱不可有空白 5. =後面可直接輸入數字或浮點小數 6. =後面要輸入字串或HTML語法的話要加""包起來 7. =後面可直接輸入算式 8. 結尾要加 ; 9. 雙引號可以含變數 單引號不可含變數 ```php= $name="中文"; $price=500; $tatal=100*$price; ``` 呈現方式 --- 1. echo+需要呈現的內容 2. echo後面直接輸入變數不用+"" 3. echo後面的內容是HTML跟字串時要用""或'' 4. echo的內容是陣列的話用{}框起來 ```php= echo $name; echo "<br>"; print ($price); echo "<br>"; echo $tatal; echo "{$i}" ``` echo的縮寫 --- ```html= <?= ;?> =><?php echo ;?> ``` if...else --- 1. 如果(條件符合參數) {呈現"這句話";}否則{呈現"這一句話";} 2. 條件有參數即正確 非零即正確 ```php= $score=80; echo"成績=".$score."<br>"; if($score>=60){$level='及格';} else{$level='不及格';} echo $level; ``` if...else if --- 1. 可加入多個條件 2. 缺點是太多條件時會耗費效能 ```php $score=50; echo "成績=".$score."<br>"; if($score>=100){echo"恭喜滿分";} else if($score>=80){echo"很棒唷";} else if($score>=60){echo"及格了";} else if($score>=40){echo"需要再加油";} else if($score>=20){echo"缺少大量的努力";} else if($score>=0){echo"沒有用心";} ``` 三元運算式 --- 變數A=(符合此條件)?’顯示此內容’:’否則顯示這個內容’; ```php= $score=58; echo"成績=".$score."<br>"; $level=($score>=60)?'及格':'不及格'; echo $level; ``` switch...case --- 1. switch須輸入一個值,不可以是單純的T或F 2. break只要條件達成就會結束不會繼續跑程式 3. 二選一時用if...else,多選用switch... *下面這個範例用floor取最小值的用意是直接算出來判斷,速度會比較快 ```php= $score=57; echo"成績=".$score."<br>"; $level=floor($score/25); echo $level."<br>"; switch($level){ case 4: case 3: echo"值得肯定";break; case 2: echo"需要練習";break; case 1: echo"缺乏基本功";break; case 0: echo"缺乏基本功"; default: echo"沒有用心";} ``` 極限值 --- 1. 在條件裡面加入極限值 2. &&=>and , ||=>or ```php= $score=1000; echo "成績=".$score."<br>"; if($score>100 ||$score<0){$level=5;} else{$level=floor($score/25);} echo $level."<br>"; switch($level){ case 4: case 3: echo"值得肯定";break; case 2: echo "需要練習";break; case 1: echo"缺乏基本功";break; case 0: echo"缺乏基本功";break; default: echo"成績不合理";} ``` *綜合練習* --- 用法: ```php= $score=50; echo "成績=".$score."<br>"; $level=($score>100 || $score<0)? 5 : floor($score/25) ; echo $level."<br>"; switch($level){ case 4: case 3: echo"值得肯定";break; case 2: echo"需要練習";break; case 1: echo"缺乏基本功";break; case 0: echo"缺乏基本功";break; default: echo"成績不合理";} ``` 迴圈 --- 用法: for(變數=從幾開始;變數小於或大於多少;變數一次增加多少) ```php= for ($i = 0; $i < 10; $i++){ echo ($i * 10) . "<br>";} ``` while --- 1. 發現條件不符就會停止 2. windows最早也是用while 3. 寫遊戲大多也都是用while當起手式 4. 用法:while(迴圈到多少停止) ```php= $i=1; while($i<100) echo $i; $i=$i+1; } echo $i; ``` do...while --- 1. 用在登入系統的判斷以及資料庫的存取 2. 不論一開始設定的參數是多少都會先做一遍 3. 就算不符合參數規範也會繼續跑到完 ```php= $i=1; do{ echo $i; $i=$i+1; } while($i<100); ``` 陣列 --- 1. 用$變數=[];來宣告一個空陣列 2. 用var_dump顯示內容以外還會顯示資料型態 3. 用print_r顯示(r是陣列的意思)則是單純將值顯示出來不會顯示其他資料 ```php= $a[1]="A"; $a[5]="B"; echo var_dump($a); echo "<br>"; print_r($a); ``` var_dump顯示的結果呈現 這個陣列裡面有兩個東西 這東西的格式先用一個字串當作key值 他所對應到的字串[1]只有(1)個byte 這個字的內容叫做A[5] 這個字串也只有(1)個字叫做B Array則是顯示這是一個陣列 然後[1]這個對應的內容叫做A [5] 空陣列的宣告方式 --- 空陣列會從0開始 ```php= $a[]='泰山'; $a[]='新北'; $a[]='台北'; $a[]='高雄'; $a[]='台中'; ``` var_dump顯示的結果呈現 裡面總長度(5)個元素 第[0]個是元素字串 長度有(6)位元 內容是泰山 第[1]個元素是字串 長度有(6)位元 內容是新北 第[2]個元素是字串 長度有(6)位元 內容是台北 第[3]個元素是字串 長度有(6)位元 內容是高雄 第[4]個元素是字串 長度有(6)位元 內容是台中 Print_r則顯示簡單的內容 [0]是泰山 [1]是新北 [2]是台北 [3]是高雄 [4]是台中 轉成字串 --- 要轉成字串的話要echo serialize ```php= $a=[]; $a[]='泰山'; $a[]='新北'; echo serialize($a); ``` 二維陣列 --- 用法: $陣列命名 [索引值(列)] [索引值(行)] = 值 ; ```php= $classmate[0][0]="Alicia"; $classmate[1][0]="Balo"; $classmate[2][0]="Cindy"; ``` array()函式 --- 用法: $陣列命名=array(索引=>array(索引=>值,索引=>值,索引=>值,....), 索引=>array(索引=>值,索引=>值,索引=>值,....), 索引=>array(索引=>值,索引=>值,索引=>值,....),....); ```php= $grade = array("Student_Alicia"=>array("Math"=>40,"English"=>100), "Student_Balo"=>array("Math"=>100,"English"=>80), "Student_cindy"=>array("Math"=>80,"English"=>70)); ``` 概念等同: $陣列命名=array(array列0(行0,行1,行2,...), array列1(行0,行1,行2,...), array列2(行0,行1,行2,...),...); ```php= $Student_Alicia = array("Math"=>40,"English"=>100); $Student_Balo = array("Math"=>100,"English"=>80); $Student_cindy = array("Math"=>80,"English"=>70); $grade = array($Student_Alicia,$Student_Balo,$Student_cindy); ```