Presentation is loading. Please wait.

Presentation is loading. Please wait.

PHP5與MySQL5 入門學習指南 凱文瑞克 著 第 7 章 資料型態.

Similar presentations


Presentation on theme: "PHP5與MySQL5 入門學習指南 凱文瑞克 著 第 7 章 資料型態."— Presentation transcript:

1 PHP5與MySQL 入門學習指南 凱文瑞克 著 第 7 章 資料型態

2 本章大綱 7-1 資料型態 7-2 布林型態 (Boolean) 7-3 整數型態 (INTEGER) 7-4 浮點數型態 (FLOAT)
7-1 資料型態 7-2 布林型態 (Boolean) 7-3 整數型態 (INTEGER) 7-4 浮點數型態 (FLOAT) 7-5 字串型態 (STRING) 7-6 陣列型態(ARRAY) 7-7 物件型態 (OBJECT) 7-8 資源型態 (Resource) 7-9 NULL型態 問題與討論

3 7-1 資料型態 PHP 對於變數的資料型態並不像許多的高階語言要事先宣告變數的型態。 而是在使用變數時, 變數被設定的值的型態就是變數型態。 例 $X = 90 ; // $X 的資料型態設定為整數。 $Y = 1.23 ; // $Y 的型態為浮點數 較嚴謹的撰寫模式, 在使用變數時必需先宣告變數的資料型態. 變數的資料型態可以使用函數來設定指定變數的資料型態。

4 資料型態包含下列8種型態 名稱 型態 範例 Boolean 布林型態 $a=Ture; Integer 整數型態 $a= 10 ;
Float 浮點數型態 $a= ; String 字串型態 $a= “Hello !!” ; Array 陣列型態 $a[0]=20 ; Object 物件型態 $a= new ObjectClass ; Resource 外部資源型態 $a=mysql_connect() ; NULL Null型態 $A=NULL ;

5 7-2 布林型態 (Boolean) 布林型態只有True (真) 與False (假) 二種值 其語法如下: True | False ;
例如: $X=Ture; $Y=False; $X 設定為真, $Y 設定為假.

6 其他資料型態轉換成布林型態 因為布林型態只有真值與假值, 所以各型態依下列的情形會被設定為False
整數值=0 浮點數=0.0 空字串 沒有陣列元素的陣列 沒有任何成員變數的物件 NULL 或沒有設定任何值的變數 除了上述情形以外其餘變數型態的都會被轉換為 True

7 7-3 整數型態 (INTEGER) 所謂的整數簡單來說就是不含有小數的數。 整數在使用上可以以 10進制、 8 進制或 16 進制的方式表示數值。 整數型態語法如下: [+|-] [0|0x] 數值 [+|-]: 正負符號, 省略時表示正值. [0|0x]: 數字基底. 0表示8進制, 0x表示16進制, 省略時表示10進制 數值: 10進制為[0-9]的組合或為0, 進制為[0-7]的組合或為0, 進制為[0-9,A-F] ,A-F可以小寫,其所代表的意義請參閱 表7-1

8 舉例說明: $A = 123 ; $B = -456 ; $C = 0123 ; $D = 0x45 ; $A 表示十進制正整數, $B 表示十進制負數, $C 在數值的前面加上 ”0” 表示 8 進制數的 123, 其值相當於十進制的 83, $D 在數值的前面加上 ”0x” 表示 16 進制數的 45, 其值相當 10 進制的 69。當然 $C 或 $D 前面加上負號即表示負值的 8、16進制。

9 表 7-1 各進制數值表示方式 十進制 八進制 十六進制 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 20 A B C D E F 表 7-1 各進制數值表示方式

10 1: <html> 2: <title>整數</title> 3: <body> 4: <? 5: $A=12 ; 6: $B=-34 ; 7: $C=012; 8: $D=0x12 ; 9: echo “A=$A <BR> B=$B <BR> C=$C <BR> D=$D”; 10: ?> 11: </body> 12: </html> 範例說明: 首先我們可以看到第 5-6 行 $A、$B 分別被設定為 12 及 -34, 兩個數都是以10 進制表示數值。第 7 行 $C 設定為 8 進制的 12。第 8 行 $D設定為 16進制的 12。如圖 7-1, 因為 $C 和 $D分別為8進制及16進制, 所以顯示的時候是將這兩個變數以十進制的值顯示出來, 分別為 10 和 18。

11 7-4 浮點數型態 (FLOAT) 浮點數型態是指含有小數的數值。
浮點數語可以有下列表示方式 $A = $B = e2 第一種是大家所熟悉的表示方式, 第二種是以指數的方式來表示。

12 2: <title>浮點數</title> 3: <body> 4: <?
1: <html> 2: <title>浮點數</title> 3: <body> 4: <? 5: $A= ; 6: $B= ; 7: $C= e-2; 8: $D= e2 ; 9: echo "A=$A <BR> B=$B <BR> C=$C <BR> D=$D" ; 10: ?> 11: </body> 12: </html> 範例說明: 第 5-6 行 $A 和 $B 分別表示正浮點數與負浮點數。第 7-8 行 $C 和 $D 為指數表示式, $C 因為 e 後面為 –2 相當於數值乘以 -100倍 (意即小數點向左移兩位), 反之 $D 相當於數值乘以 100 倍 (意即小數點向右移兩位)。

13 7-5 字串型態 (STRING) 字串是文字的串列的組合。 字串有二種常用的表示方式,
第一種方式是將文字串以二個雙引號前後括起來。 第二種方式是將文字串以二個單引號前後括起來。 在字串中需要使用特殊字元, 則可以用反斜線 ( \ ) 表示。例如 \n 表示換行。

14 \n \r \t \\ \” \’ \$ 字元 代表意義 換行並歸零 換行 跳一定點 反斜線 雙引號 單引號 $字元
表 7-2 字串中的特殊字元

15 單引號表示需注意下列幾點: 字串中的變數不會顯示變數的內容. 在範例 6-4 已說明此種情形
字串中如需單引號必須以 \’ 代替單引號, 例如 echo ‘I\’ll be back’; 顯示 I’ll be back 雙引號表示需注意下列幾點: 字串中會顯示變數的內容. 在範例6-4已說明此種情形 字串中如需雙引號必須以\”代替雙引號, 例如 echo “\”PHP\” is a good solution.”; 顯示”PHP” is a good solution.

16 2: <title>字串</title> 3: <body> 4: <?php
1: <html> 2: <title>字串</title> 3: <body> 4: <?php 5: $A = "Hello " ; 6: $B = "my friend.<br>\n" ; 7: $C = "Today is sunday." ; 8: echo "$A $B $C <hr>" ; 9: echo "\$A=$A \$B=$B \$C=$C" ; 10: ?> 11: </body> 12: </html> 檢視原始檔案 由圖中可以看到 3 個文字串分 2 行顯示。在瀏覽器中選擇檢視原始檔案可以看到 ”\n” 已經不存在, 所在的位置恰好使得原始檔換行顯示, 在沒有加入 ”\n” 則原始檔是連續顯示。但是請讀者特別注意瀏覽器中文字換行的效果是由 <br> 所產生的, 並不是由 ”\n” 產生的。最後的第 8-9 行 echo 分別顯示三個字串變數, 其中第 8 行 ”$A” 是代表變數, 而第 9 行 ”\$A” 可以看成是 ”\$”+”A” , 所以在解譯時 ”\$” 表示 ”$” 請參考表7-2) , 最後在瀏覽器中就可以看到 ”$A” 而不會把它當作一個變數。

17 1: <html> 2: <title>字串連接</title> 3: <body> 4: <?php 5: $A = "Hello " ; // 設定$A的內容 6: $B = "my friend, " ; // 設定$B的內容 7: $C = $A . $B ; // 將$B的內容加至$A後 8: $C = $C . "how are you?" ; // 附加$C的內容 9: echo " $C " ; // 顯示$C的內容 10: ?> 11: </body> 12: </html> 範例說明: 第 7-8 行說明二個字串間可以以 ”.” 符號使二個字串接連在一起。這和其他語言不同, 也就是說不可以使用 ”+” 相連二個字串, 否則會產生錯誤。

18 7-6 陣列型態(ARRAY) 所謂的陣列就是指集合相同屬性的變數所成的集合, 我們稱之為陣列. 如圖7-6說明了6 個變數與陣列的關係. 陣列的名稱為$CAR而裡面是 6 個元素的集合.分別以$CAR[0], $CAR[1]…到$CAR[5]代表這 6 個元素. 陣列的語法如下 $陣列名稱[指標]

19 陣列 在 PHP 中因為變數型態不需要特別宣告, 因此當資料存入變數時, 變數存放的格式為陣列格式, 此時變數即可成為陣列型態。舉例如下:
$A[0] = 0 ; $A[1]=10 ; $A[2]=20 ; $A[3]=30; 這時候建立了一個一維陣列內容值為 0,10,20,30。如圖所示輸入的資料依序放入名稱為 $A 的陣列. 而且請記得陣列的指標是從 0 開始.

20 陣列的種類 在陣列中只有一個指標的陣列稱為一維陣列, 如果陣列的指標超過一個以上稱之為多維陣列. 有兩個指標則稱之為二維陣列, 三個指標稱之為三維陣列其餘依此類推。 例: $A[1][1] = “Hello” ; // 二維陣列 $B[1][2][3] = 10 ; // 三維陣列 $C[1][2][0][2] = ; // 四維陣列

21 7-7 物件型態 (OBJECT) 一個新的資料型態稱之為類別在類別中定義:
物件的資料成員 (Data Member),代表物件的屬性。 物件的成員函數 (Member Function), 代表物件的操作模式。 由於類別是一個資料型態, 所以類別是虛擬的宣告並沒有佔用資源. 真正使用時必須宣告一個物件的類別型態, 此時物件是一個實體會佔用統資源如記憶體, CPU Time等. 建築藍圖(類別) VS.依照藍圖建造的大樓(物件)

22 類別格式 class 類別名稱 { var 資料成員; function 成員函數(){ 成員函數內容 }

23 類別範例 1: <?php 2: class table { 3: var $color ;
4: function set_color($new_color){ 5: $this->color=$new_color ; } 6: function show_color() { 7: echo $this->color; 8: echo "<br>\n" ; } 9: } 10:?> 11: <html> 12: <title>物件</title> 13: <body> 14: <? 15: $T=new table() ; 16: $D=new table() ; 17: $T->set_color("Red") ; 18: $D->set_color("Blue") ; 19: echo "T table color is " ; 20: $T->show_color() ; 21: echo "D table coloe is " ; 22: $D->show_color() ; 23: ?> 24: </body> 25: </html>

24 1: <?php 2: class table { 3: var $color ; 4: function set_color($new_color){ 5: $this->color=$new_color ; } 6: function show_color() { 7: echo $this->color; 8: echo "<br>\n" ; } 9: } 10:?> 11: <html> 12: <title>物件</title> 13: <body> 在範例中第 2-9 行 class 宣告一個類別名稱為 table。其中包括物件資料成員color, 並且擁有設定 color 屬性的成員函數 set_color(), 以及顯示 color 屬性內容的成員函數 show_color()。宣告完類別後只是定義好一個抽象的類別型態。 14: <? 15: $T=new table() ; 16: $D=new table() ; 17: $T->set_color("Red") ; 18: $D->set_color("Blue") ; 19: echo "T table color is " ; 20: $T->show_color() ; 21: echo "D table coloe is " ; 22: $D->show_color() ; 23: ?> 24: </body> 25: </html> 在範例中第 2-9 行 class 宣告一個類別名稱為 table。宣告完類別後只是定義好一個抽象的類別型態, 必須要用 new 指令來產生物件 (意即產生實體) 。第 行我們一共產生的兩個物件 $T 與 $D, 並分別對物件作設定屬性以及顯示屬性。物件在操作時利用 ”->”來存取、執行資料及功能。

25 7-8 資源型態 (Resource) 資源型態是一種特殊的資料型態, 不同於之前的資料型態, 資源型態變數是負責維持與外部資源的聯繫.
例如開啟的一個檔案, 資料庫連線, PDF, 影像等等 資源型態變數不可以直接操作, 如果需要操作資源型態變數則必須藉由特殊的函數才可以操作. 例: MySql 對PHP來說是一個外部資源, 因此當PHP需要操作資料庫時就必須藉由 PHP 中的 MySql 函數來操作 $m=mysql_connect(‘localhost’,’root’,’1234’);

26 7-9 NULL型態 NULL 也是一個比較特殊的型態. 一個變數如果被設定成 NULL就表示這個變數裡沒有任何的值.
有三種情形會被認定變數的值為NULL $n1 直接設定為 NULL, 所以 $n1 為 NULL. unset() 函數會清除變數的內容, 所以 $n2 為 NULL. $n3 沒有任何的設定和預先的處理, 所以 $n3 的內容也為NULL. 結論是上面的例子中 3 行 echo 都不會有任何的輸出. $n1=NULL; unset($n2); echo $n1; echo $n2; echo $n3;

27 問題與討論 請說明PHP的資料型態有哪些? 請說明<BR>和“\n”二者功能為何? 使用的時機有何不同。
請撰寫程式顯示下列變數之內容與變數型態。 $A=123 $B= $C="Hello !!“ 何謂陣列? 與多維陣列? 請說明陣列如何設定初始值。 何謂物件? 何謂資源 (resource) ?


Download ppt "PHP5與MySQL5 入門學習指南 凱文瑞克 著 第 7 章 資料型態."

Similar presentations


Ads by Google