Presentation is loading. Please wait.

Presentation is loading. Please wait.

第6章 PHP基本語法介紹.

Similar presentations


Presentation on theme: "第6章 PHP基本語法介紹."— Presentation transcript:

1 第6章 PHP基本語法介紹

2 6.1 Hello World程式

3 PHP 的程式碼的寫法 是在<?php和?>標籤之內崁入PHP的程式,<?php 代表的是 PHP 程式碼的開頭,?>代表的是程式碼的結束 。 程式碼的每一行後面必須加上分號(;)當作程式的結束。

4 PHP程式碼的格式一

5 PHP程式碼的格式二 (不用分行和縮排 )

6 寫好的網頁程式 要放在: 在瀏覽器輸入http://localhost/ch06/Ex6-11.php測試程式。
(1).個別安裝:C:\Program Files\Apache Group\Apache2\htdocs的目錄或其子目錄下。 (2).單一安裝:c:\appserv\www的目錄或其子目錄下(註:像本書建了ch06子目錄放此章節的程式, 在瀏覽器輸入

7 範例6-1:Ex6-1.php

8 圖6-1:Hello World程式實例

9 說明: 看出來了嗎?PHP的程式是崁在html網頁內的<body>和</body>之標籤內,所以真正的PHP語言程式碼是在範例的6~8行。此範例故意將全部的標籤印出來,後面的範例將只敘述PHP的程式碼,省略其他HTML的標籤。PHP 的程式碼的寫法,是在<?php和?>標籤之內崁入PHP的程式。 第8行的echo 語法是 PHP 的語法,用來做輸出用,輸出"Hello! World!"一句話。

10 echo 語法 echo 是 PHP 的語法,用來做輸出。

11 範例6-2

12 圖6-2:斷行程式實例

13 說明: 1. PHP與HTML的換行方式,PHP 的程式碼中(本文)利用 Enter做的換行動作,並不是在瀏覽器畫面的實際換行,瀏覽器只認得HTML標籤,所以輸出畫面的換行必須在echo的敘述中,加入使用 HTML 語法中的 <br> 換行標籤。(加上 <br>或<p>,可以使得瀏覽器在顯示該字串時產生換行的效果。)

14 註解 1.「//」 之後的字到該行的結束均為註解,此為C 語言、C++ 語言的註解方式。
3. 「#」 之後的字到該行的結束均為註解,此為UNIX 的 Shell 語言的註解方式。

15 範例6-3:Ex6-3.php

16 圖6-3:註解程式實例

17 不能讓註解陷入巢狀迴圈當中 不能讓註解陷入巢狀迴圈當中,否則會引起錯誤。如下面範例在多行註解/*和*/中,又包含了另一個多行註解( /* 巢狀註解會引起問題 */)。

18 範例6-4:Ex6-4.php

19 圖6-4:錯誤註解程式實例

20 6.2 常數和變數

21 常數 常數是一個簡單數值的標識名字。如同其名稱所暗示的,在程式執行期間該值並不會改變。
合法的常數名以字母或底線開始,後面跟著任何字母,數字或底線。 常數的範圍是全區域的,也就是說不用管範圍就可以在代碼的任何地方使用。 當常數定義時,前面不需要加「$」 。 常數只能包含標準資料型態(boolean, integer, float, string) 。

22 常數最常用到的有下列2種函數 define()函數: 用來定義常數。 constant()函數: 用來讀取常數的值。

23 範例6-5:Ex6-5.php

24 圖6-5:常數程式實例

25 表6-1:PHP內建常數

26 變數 在 PHP 中,變數在PHP中是以“$”(錢字號)來表示!也就是說只要以 $ 開頭的單字是變數, 並且變數名稱有大小寫之分

27 兩個不同的變數

28 變數的命名原則 變數的名稱只能夠是a~z(大小寫皆可)、0-9、_(底線),並且不可以由數字開頭

29 正確的命名方式

30 比較好的變數命名的原則

31 變數不需要事先經過宣告 你可以隨時在程式中使用一個新的變數,而不需要事先的宣告。
雖然變數不需要經過宣告,但是一個好的程式設計師,會在規劃的時候,就將各種會使用到的變數名稱、型態規劃和整理出來成檔案,以便在程式撰寫的途中能有依循的標準

32 表6-2 程式的變數整理

33 變數的型態 變數的命名和資料型態無關,而是看變數的初始值來決定屬於自己的型態,這個型態指的是變數的種類,
而變數可以PHP提供八種資料型態,分別是:布林值、整數值、浮點數、字串、陣列、物件、資源(resource)、空(NULL)。

34 變數型態

35 範例6-6:Ex6-6.php

36 圖6-6:變數程式實例

37 預設變數 PHP 為它執行的程式提供了大量的預設變數,當然你在命名變數要避開這些變數。

38 表6-2:PHP預設變數

39 表6-2:PHP預設變數(續)

40 6.3資料型態

41 布林值型態 值可以是TRUE或FALSE其中之一,用於在類似if的序述中「判斷值」。

42 布林值型態

43 範例6-7:Ex6-7.php

44 圖6-7:布林值程式實例

45 說明: echo 出來true的值是1, echo 出來flase的值是空(Null)。

46 整數值型態 整數值型態是最簡單的型態,對應於包括正負數的簡單整數,整數值的範圍是Z = {..., -2, -1, 0, 1, 2, ...}。

47 範例6-8:Ex6-8.php

48 圖6-8:整數程式實例

49 說明: 8進位數和16進位數,當然是以二進位數儲存在電腦內,但是最後輸出來時是以十進位數的轉換結果。

50 浮點數 浮點數又稱為floats、doubles、real numbers。
浮點數的字長和平台相關,通常最大值是 1.8e308 並具有 14 位十進制數字的精度(64 位 IEEE 格式)。

51 浮點數範例

52 字串 PHP字串的表達方式有三種:1.單引號,2.雙引號,3.heredoc語法。第3種heredoc是使用heredoc語法(“<<<”) ,這種方法因為很少人使用,故不介紹 。

53 1.單引號 這種方式相當的簡單,只需在字串的前後加上單引號( ' )即可。

54 2.雙引號 若將字串以雙引號( " )圍住,使用法和單引號法相同,有一點要注意的是雙引號內的單引號( ' )會當成字串中的文字使用

55 表6-3: 跳脫字元

56 錢($)的符號 當剖析器遇到錢($)的符號時,會把它當是一個變數名稱

57 取出字串中的字元 要取出字串中的字元,可在字串後面使用大括弧將偏移量括弧起來,就可得到該偏移量在字串中所代表的字元。偏移量的起始值為零(0)

58 字串連接 要將字串連接起來可以使用點( . )這個運算元,而不是使用加號(+)。

59 轉換字串 如果數字字串中包含了'.'、'e'、'E'這些字元,在轉換後會視為是浮點數的值。

60 範例6-9:Ex6-9.php

61 圖6-9:字串程式實例

62 陣列 陣列是一個結構性的資料儲存空間,在程式設計上是不可或缺的工具。 陣列的索引,不一定是數字編號,也可以是字串。

63 陣列

64 初始化陣列 有幾種方式: 1.直接指定索引值, 2.自動索引, 3.使用array函數

65 1.直接指定索引值

66 圖6-10:陣列程式實例

67 數量陣列(scalar array ) $week[0] = "Monday"; 以數值做索引的陣列稱為「數量陣列」。

68 聯想陣列(associative array)
$week["Thursday"] = 4; 以字串做索引的陣列稱為「聯想陣列」。

69 2.自動索引

70 3.使用array函數

71 二維陣列 二維陣列和多維陣列的初始化與一維陣列方法相同

72 範例6-11:Ex6-11.php

73 圖6-11:二維陣列程式實例

74 也可以寫成如下:

75 陣列的內部指標 PHP 裡的陣列事實上是利用資料結構中的雙向鍵結串列來維護的

76 表6-4: PHP 陣列相關函數 (ref. Ex6-array.php)

77 表6-4: PHP 陣列相關函數(續)

78 物件 初始化(initialize)物件,可以使用new這個語法。

79 範例6-12:Ex6-12.php

80 圖6-12:物件程式實例

81 資源(resource) 是個特殊的變數,它是被特殊的函式所建立並加以使用。

82 資料庫連線語法

83 NULL 這個特殊的值NULL,所代表的意思是變數的值是空的

84 如果變數符合下列三點之一,變數的值會被視為是NULL
變數的值是NULL (* NULL是不分大小寫的)。 變數並沒有被設定任何的值。 變數己經被unset( )這個函式所刪除了。

85 自動轉換型態 使用運算元"+",自動地改變資料型態。

86 強迫型態轉換 要強迫變數轉換資料的型態可使用下列這種方式,在變數前面用括弧住要強迫轉換的型別,在括弧裡面可以包含tabs及空白鍵

87 允許強迫轉換型別的種類有下列幾種: (int), (integer):轉換成整數。 (bool), (boolean):轉換成布林值。
(float), (double), (real):轉換成浮點數。 (string):轉換成字串。 (array):轉換成陣列。 (object):轉換成物件。

88 轉換成物件 要將一個數量或字串的變數轉換成物件,變數的值會成為物件的屬性,此屬性的名稱會是'scalar'。

89 範例6-13:Ex6-13.php

90 圖6-13:轉換型別程式實例

91 6.4 PHP運算式/運算子/優先順序

92 PHP運算子 算數運算子(Arithmetic Operators) 字串運算子(String Operators)
指定運算子(Assignment Operators) 位元運算子(Bitwise Operators) 比較運算子(Comparison Operators) 條件運算子(Conditional Operator) 錯誤控制運算子(Error Control Operators) 執行運算子(Execution Operators) 遞增/遞減運算子(Incrementing/Decrementing Operators) 邏輯運算子(Logical Operators)

93 算數運算子 算數運算子有加, 減, 乘, 除 , 求餘數等運算。

94 表6-5 算數運算子

95 範例6-14:Ex6-14.php

96 圖6-14:算數運算子程式實例

97 遞增/遞減運算子(Incrementing/Decrementing Operators)
遞增運算子(++),$a++或++$a每次遞增加1。遞減運算子(--),$a-- 或--$a每次遞增減1。

98 表6-6遞增/遞減運算子

99 範例6-15:Ex6-15.php

100 圖6-15:遞增/遞減運算子程式實例

101 說明: $op2 = $op1++; : $op1(值=10)先傳回值給$op2(值=10)後,$op1(值=10)自己再加 1存回$op1(值=11)。 $op2 = ++$op1; : $op1(值=11)自己先加 1存回$op1(值=12) ,$op1(值=12)再傳回值給$op2(值=12)後。 $op2 = $op1--; : $op1(值=12)先傳回值給$op2(值=12)後,$op1(值=10)自己再減 1存回$op1(值=11)。 $op2 = --$op1; : $op1(值=11)自己先減 1存回$op1(值=10) ,$op1(值=10)再傳回值給$op2(值=10)後。

102 字串運算子(String Operators)
字串運算子只有一個,就是「.」,用來將字串連接起來,合併成為新字串。

103 範例6-16:Ex6-16.php

104 圖6-16:字串運算子程式實例

105 指定運算子(Assignment Operators)

106 表6-7:指定運算子

107 範例6-17:Ex6-17.php

108 圖6-17:指定運算子程式實例

109 位元運算子(Bitwise Operators)
位元運算子有AND 運算子(&)、OR 運算子(|)、Exclusive OR 運算子(^)、NOT 運算子(~)、位元左移運算子(<<)及位元右移運算子 (>>)。

110 表6-8:位元運算子

111 範例6-18:Ex6-18.php

112 圖6-18:位元運算子程式實例

113 比較運算子(Comparison Operators)
比較運算子有 ==,<,>,<=,>=,!=,<> 。

114 表6-9:比較運算子

115 範例6-19:Ex6-19.php

116 圖6-19:比較運算子程式實例

117 邏輯運算子(Logical Operators)
and, &&, or, ||, xor, ! 各代表邏輯布林運算的 AND, AND , OR , OR , XOR , NOT等運算。

118 表6-10:邏輯運算子

119 範例6-20:Ex6-20.php

120 圖6-20:邏輯運算子程式實例

121 條件運算子(Conditional Operator)
與許多程式語言一樣,PHP 也可以使用 A ? B : C 形式(A True 則 B 否則 C),其中的 A, B, C 是 expression 形式。

122 表6-11:條件運算子

123 範例6-21:Ex6-21.php

124 圖6-21:條件運算子程式實例

125 錯誤控制運算子(Error Control Operators)
PHP

126 範例6-22:Ex6-22.php

127 圖6-22:錯誤控制運算子程式實例

128 執行運算子(Execution Operators)
PHP 支援執行運算子backticks(``)(倒單引號,在鍵盤上「數字 1」的左側)的執行運算,在裡頭的字串將被視為 Dos command 來執行,而執行的輸出就是「值」,可以設定給其他變數。

129 範例6-23:Ex6-23.php

130 圖6-23:執行運算子程式實例

131 表6-12:運算子優先等級

132 6.5選擇性敘述

133 1.循序性結構: 由上而下的敘述方式,一行敘述執行完畢,再執行下一行。

134 選擇性結構: 根據判斷條件的成立與否,再決定要執行那一些敘述的結構。

135 重複性結構: 根據判斷條件的成立與否,決定程式段落回圈主體的執行次數的結構。

136 if敘述 在選擇性的結構中,使用的就是if 敘述

137 格式一:

138 格式二:

139 格式三:

140 範例6-24:Ex6-24.php

141 圖6-27:if敘述程式實例

142 搭配else敘述 加上 else 可以做「如果...則...否則...」的邏輯判斷,使用if…else…的敘述

143 格式一:

144 格式二:

145 範例6-25:Ex6-25.php

146 圖6-28:else敘述程式實例

147 再搭配elseif敘述 當程式的判斷需要不只一個條件時,則需要用到if…elseif…else敘述。

148 格式一:

149 格式二:

150 範例6-26:Ex6-26.php

151 圖6-29:elseif敘述程式實例

152 巢狀if敘述 巢狀if敘述就是if 敘述中再用另一個 if 敘述進行判斷。

153 格式一:

154 範例6-27:Ex6-27.php

155 圖6-30:巢狀if敘述程式實例

156 switch敘述 switch 是很好用的多條件判斷敘述,跟 if...elseif...elseif... 結構相同。
switch敘述的運作方式:當case的值和switch 的值相同時,則case以下的所有的敘述就會被執行,除非在方塊裏遇到break,執行才會被中斷。

157 圖6-31:switch敘述流程圖

158 格式:

159 範例6-28:Ex6-28.php

160 圖6-32:switch程式實例

161 6.6 重複性敘述

162 while while 是一種迴圈的敘述,while 先判斷判斷式的成立與否,如果判斷式為 true,則執行 while 裡的敘述,否則(flase)離開while迴圈。

163 格式:

164 範例6-29:Ex6-29.php

165 圖6-33:while程式實例

166 do...while 敘述 do...while 敘述也是迴圈敘述,但是 do...while敘述 與 while 敘述不同的地方在於,do...while敘述會先執行 do 裡的敘述一次後才去判斷判斷式是否成立。

167 格式:

168 範例6-30:Ex6-30.php

169 圖6-34:do..while程式實例

170 for敘述 for 迴圈敘述是一種有條件式的迴圈語法,for 可以指定迴圈開始與結束和遞增的條件,因此可以限定迴圈的次數。

171 格式:

172 範例6-31:Ex6-31.php

173 圖6-35:for程式實例

174 break指令 break 指令用來跳出目前的迴圈,通常是用在利用 if 敘述判斷到某個符合的條件,而必須馬上跳出迴圈時才使用。

175 範例6-32:Ex6-32.php

176 圖6-36:break程式實例

177 continue 指令 continue 與 break 是相對的指令。break 中斷目前執行的迴圈,continue 則是回到迴圈的開頭,continue後面的敘述則不執行,重新執行迴圈。

178 範例6-33:Ex6-33.php

179 圖6-37:continue程式實例

180 巢狀迴圈 就像其他所有的程式語言一樣,PHP的巢狀迴圈是一個迴圈可在另一個迴圈之內,通常搭配多維陣列來執行。

181 格式:

182 範例6-34:Ex6-34.php

183 圖6-38:巢狀迴圈程式實例

184 本章結束 謝謝!!


Download ppt "第6章 PHP基本語法介紹."

Similar presentations


Ads by Google