1 / 38

PHP 基本語法

PHP 基本語法. 一般程式語言範圍與內容. 變數 型態:數值、字串、布林 運算 算數運算: +, -, *, / 比較運算: >, <, ==, >=, <=, != 布林運算: &&, ||, ! 選擇結構 if … else switch … case 重覆結構 for while foreach 陣列 副程式. 資料型別與變數. PHP 與 C/C++ 、 Java 不同,使用變數不必先宣告變數型別。 PHP 變數名稱均以 $ 開頭,再接變數名稱。 變數名稱第 1 個字必須是英文字母或底線符號 _ ,之後則可使用任何文數字。

basil-nash
Download Presentation

PHP 基本語法

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PHP 基本語法

  2. 一般程式語言範圍與內容 • 變數 • 型態:數值、字串、布林 • 運算 • 算數運算:+, -, *, / • 比較運算:>, <, ==, >=, <=, != • 布林運算:&&, ||, ! • 選擇結構 • if … else • switch … case • 重覆結構 • for • while • foreach • 陣列 • 副程式

  3. 資料型別與變數 • PHP與C/C++、Java不同,使用變數不必先宣告變數型別。 • PHP變數名稱均以$開頭,再接變數名稱。 • 變數名稱第 1 個字必須是英文字母或底線符號 _,之後則可使用任何文數字。 • 特別注意:變數名稱在 PHP 中有區分大小寫,但PHP 指令則不分大小寫。 • echo 也可寫成 ECHO, 功能都相同 • $var和 $VAR 是兩個不同的變數

  4. 資料型別 • PHP 的變數可存放下列幾種類型的資料: • 布林值 (boolean) • 整數 (integer) • 浮點數 (float, floating-point) • 字串 (string) • 陣列 (array) • 物件 (object) • 資源 (resource) • 空值 (null)

  5. PHP 的字串表示法 • 字串可使用下列表示法: • 單引號 ('):一般性字串。 • 雙引號 (“):可直接解譯字串中的變數值。 • heredoc:適用於多行的字串(不常用)。 • 反斜線(\)稱為跳脫序列(Escape Sequence),可用來表示特殊符號,如’, “, \, $等。

  6. 單引號與雙引號比較 <?php $str = “我有”; $money = 100; echo “$str $money 元<br/>”; //雙引號 echo ‘$str $money 元<br/>’; //單引號 ?> • 執行結果: • 我有 100 元 • $str $money 元

  7. 常數(Constant) • 特點是『定義之後,其值不能變更』。 • 功能: • 避免不小心改到不應更改的變數值 • 用文字代替特定的資料或數值,讓程式具可讀性。 • 定義常數語法 • 命名規則和變數類似 • 不以 $ 符號為開頭 • 習慣上都會全部使用大寫英文來命名。 • 語法:define(‘NAME’, Value) • NAME:常數名稱 • Value:常數值 • 範例 define(‘PI’, 3.1415926); echo ‘半徑 4 的圓<br/>其面積為:’; echo PI *4*4; echo ‘周長為:’; echo 2*PI*4;

  8. 運算功能 • 算術運算 • 遞增 / 遞減運算

  9. 運算功能 • 字串串連 $str = ‘程式’; echo ‘PHP ‘ . $str . ‘設計’; //結果為『PHP程式設計』 • 比較運算

  10. 運算功能 • 邏輯運算

  11. 運算功能 • 邏輯運算真值表

  12. == 和 === 以及 != 和 !== 的不同 • PHP運作時,會自動做資料型別轉換 $str = ‘100’; $money = ‘99 dollars’; echo 23 + $str; //結果:123 (23+100) echo $money -23; //結果:76 (99-23) • 使用 ==、!= 運算子時,PHP 也會自動轉換運算元的資料型別,以進行比較 $num = 100; //整數 $str = ‘100’; //字串 $str == $num; //True, 因型態自動轉換後,兩者都是100 $str === $num; //False, 因型態不同

  13. 邏輯運算中的型別轉換 • 各資料型別的變數會依如下的原則進行轉換: • 就整數、浮點數而言, 當其值為 0 即會視為 false、其它數值都算是 true。 • 當字串為 '0'、空字串 (沒有內容的字串 ''), 即會被視為 false;其它字串都算是 true。 • NULL、空陣列一律都是 false;有含元素的陣列則為 true。

  14. 運算子與運算式 • 運算子優先順序 • 當一個運算式內有多個運算時, 會依照優先順序來決定運算的先後。(不同語言可能會有不同順序,不要過份倚賴,應以括號標示其優先順序)

  15. 4 - 5 流程控制 • 條件控制 • If / else • if / elseif / else • switch • 迴圈 • while • for • break 與 continue • foreach

  16. 條件控制 • 語法: if(條件運算式){ //條件運算式為true時,所執行的程式碼 } else{ //條件運算式為false時,所執行的程式碼 } • else 的部份, 若不需要可省略。 • 範例 if( $temp > 25){ echo ‘穿短袖’; } else{ echo ‘穿長袖’; }

  17. 條件控制 • if / elseif / else: • 範例: if(score>=90) echo 'A'; //90分以上為A elseif(score>=80) echo 'B'; //80分以上為B elseif(score>=70) echo 'C'; //70分以上為C elseif(score>=60) echo 'D'; //60分以上為D else echo 'E'; //60分以下為E

  18. 實戰演練 - 陽春登入及歡迎網頁 會員名稱: 密碼: 登入 登入成功 登入失敗

  19. 條件控制─Switch • 範例: $season = '春'; switch ($season) { case '春': echo '穿長袖'; break; case '夏': echo '穿短袖'; break; case '秋': echo '穿長袖'; break; case '冬': echo '穿長袖+外套'; break; default: echo '不合理的季節'; break; } • 練習:輸入西元年月,輸出是否為潤年與季節(春夏秋冬)

  20. 實戰演練 - 加減計算機 • 檢查文字框內容是否為空值,PS: 使用isset()判斷。 = 計算 3*5=15

  21. 迴圈─for • 語法: for(初始運算式; 條件運算式; 控制運算式){ //迴圈中要重覆執行的程式碼 } • 初始運算式只有第 1 次進入 for 迴圈之前會被執行 • 條件運算式則和 while 一樣, 是用以判斷是否要繼續執行大括號的內容。 • 控制運算式則是每一輪迴圈執行結束後都會執行的。 • 練習:輸入兩數a,b,計自a+…+b=?

  22. 迴圈─while • 語法: while(條件運算式){ //迴圈中要重覆執行的程式碼 } • 當條件運算式為 true 時, 就會重複執行大括號中的程式碼。 • 練習:輸入兩數,計算最大公因數

  23. 迴圈─do …. while • 與while類似,但適用於迴圈『至少要執行一次』的情況, 其語法如下。 do{ //迴圈中要重覆執行的程式碼 } while(條件運算式);

  24. 迴圈─break, continue • break:會跳出迴圈 for($i=1; $i<=5; $i++){ if($i==3) //當$i為3時,跳出迴圈 break; //結果:1, 2 } • continue:則跳到下一輪的迴圈。 for($i=1; $i<=5; $i++){ if($i==3) //當$i為3時,跳到迴圈的下一輪 continue;//結果:1, 2, 4, 5 }

  25. 陣列 $student[1] $student[0][1] $student[1][1] $student[3] $student[0][3] $student[1][3] $student[0] $student[0][0] $student[1][0] $student[2] $student[0][2] $student[1][2] $student一維陣列 $student二維陣列

  26. 一維陣列 • 建立陣列的語法如下: $var[index]=value • $var: 變數名稱 • index: 索引值可以是數字或字串索引 • value: 值 • 如果未指定索引值,會自動從 0 開始,後面的元素索引會自動接著前一個元素索引編號。 • 若要指定索引編號, 亦可不按順序指定。 $student[] = 100; //相當於 $student[0] = 100 $student[] = 90; //相當於 $student[1] = 90 $student[7] = 70; //不必依照順序 $student[‘Mary’] = 100; $student[‘John’] = 99;

  27. 以 array() 函式建立一維陣列 語法: $arr = array( index1 => value1, index2 => value2, … ); • $arr: 變數名稱 • index: 索引值可以是數字或字串索引 • value: 值 範例: $week = array(‘Sunday', ‘Monday', ‘Tuesday‘, ‘Wednesday‘, ‘Thursday‘, ‘Friday‘, ‘Saturday‘ );

  28. 練習 • 作兩個陣列:(‘Sunday’, ‘Monday’, ‘Tuesday‘, ‘Wednesday‘, ‘Thursday‘, ‘Friday‘, ‘Saturday‘)與(‘星期日’, ‘星期一’, ‘星期二‘, ‘星期三‘, ‘星期四‘, ‘星期五‘, ‘星期六‘),顯示如下: Sunday 星期日 Monday 星期一 Tuesday 星期二 Wednesday 星期三 Thursday 星期四 Friday 星期五 Saturday 星期六 • 如果以一個陣列該如何作呢?

  29. 二維陣列與多維陣列 • 二維以上陣列其實可以看成多個一維陣列的組合。 … … … … … … …

  30. 二維陣列建立 – 使用兩層 array() • 範例: $student = array( '1099137101' => array( 'chi' => 90, 'math' => 80, 'eng' => 70 ), '1099137102' => array( 'chi' => 90, 'math' => 80, 'eng' => 70 ), '1099137103' => array( 'chi' => 90, 'math' => 80, 'eng' => 70 ), ); • 先建立好一維陣列, 然後再放進另一個陣列中 • 範例: $score = array( 'chi' => 90, 'math' => 80, 'eng' => 70 ); $student[0] = $score; • 語法: $arr = array( index1 => array( key1 => value1, key2 => value2, … ), index2 => array( key1 => value1, key2 => value2, … ), … );

  31. 多維陣列 • 三維、四維...等多維陣列的建立方法與二維陣列類似。 • 例如: • 3 年 2 班 1 號同學的三維陣列名稱就是 $student[3][2][1] • 6 年 4 班 2 號同學的數學成績的四維陣列名稱可以是 $student[6][4][2][‘math’]

  32. 迴圈─foreach • 當需對陣列中每一個元素進行處理時,foreach迴圈更方便。 • 語法一(無索引值): foreach($arras $value){ //迴圈中要重覆執行的程式碼 } • $arr: 要處理的陣列 • $value: 自訂的變數名稱 • foreach會依序從 $arr陣列中取得各元素值, 然後放在 $value 變數中。

  33. 迴圈─foreach – 範例 $week = array(‘Sunday', ‘Monday', ‘Tuesday‘, ‘Wensday‘, ‘Thursday‘, ‘Friday‘, ‘Saturday‘, ); foreach($week as $value){ echo $value; }

  34. for與foreach的比較 • 承上題,若改用 for 迴圈 $length = count($week); for($i=0; $i<$length; $i++){ echo “$week[$i] <br/>”; } • for 迴圈必須先取得陣列長度來定義迴圈,因為PHP的陣列允許字串索引,也允許不連續儲存,使用上不若 foreach迴圈方便易用。

  35. 迴圈─foreach • 語法二(需同時用到元素索引和元素值): foreach($arr as $key => $value){ //迴圈中要重覆執行的程式碼 } • $arr: 要處理的陣列 • $key: 每次陣列元素中的索引值 • $value:每次陣列元素中的元素值 • 範例:有一以學號為索引的分數陣列,今欲輸出每個人的姓名和分數: $student = array( '1099137101' => 90, '1099137102' => 85, '1099137103' => 75 ); foreach($student as $id => $score){ echo $id . ‘考了‘ . $score . ‘分’; }

  36. 取得表單中複選欄位的資料 • 『可以複選』的欄位,如<select multiple...>,名稱相同的多選鈕 (<input type = “checkbox”..>)等 • 若名稱相同,讀取 $_GET[‘learning’] 時,只能取得最後一個值。 (後面資料會覆蓋前面資料)

  37. 取得表單中複選欄位的資料 <select name=“learning[]” size=“3” multiple> <option>JSP</option> <option>PHP</option> … </select> • 或是 <input type=“checkbox” name=“learning[]” value=“JSP” /> <input type=“checkbox” name=“learning[]” value=“PHP” /> • 如此送出的表單資料, PHP取行資料如下(假設使用$_GET 陣列) • $_GET[‘learning’][0] = “JSP”; • $_GET[‘learning’][1] = “PHP”; • 若使用foreach,該如何作呢?

  38. 練習 - 飲料訂購單 數量 飲料名稱 價格 淳品奶茶 30 微笑奶茶 35 珍珠奶茶 40 計算 親愛的顧客,你點的是 淳品奶茶1杯 微笑奶茶3杯 珍珠奶茶2杯 總共6杯,共計215元

More Related