我們的電腦運作時,存放資料的地方就是記憶體,記憶體的資料都是由0和1所組成。因此,記憶體中的0 和1 組成資料是代表什麼意義,那就得看程式如何定義。可以把它定義為整數、文字、或字元。而電腦如何定義資料的方式就叫做資料型態。也就是說,資料型態是資料表示的狀態。在一般程式中,資料型態通常會與變數一起宣告使用。在PHP中,資料型態可以分為下列幾種:
整數 (integer)
整數即是不含小數點的數值,可以為正負整數,範圍為 -2,147,483,648 至 2,147,483,647,其數值可以用10進位表示外,也能使用八進位或十六進位表示。若要使用八進位的數值,只需要在數值前面加一個0,若要使用十六進位,只需要在數值前面加上0x
<?php $number1=123 ; //變數number1為正整數123 echo $number1; echo "<BR>"; //輸出HTML斷行 $number2=-456; //變數number2為負整數-456 echo $number2; echo "<BR>"; //輸出HTML斷行 $number3=012; //變數number3為八進位12,相當於十進位的10 echo $nimber3; echo "<BR>"; //輸出HTML斷行 $number4=0xF; //變數number4為十六進位F,相當於十進位的15 echo $nimber4; echo "<BR>"; //輸出HTML斷行 ?>
執行結果如下:
123
-456
10
15
浮點數 (floating point number)
浮點數即是含有小數的數值,也可以為正負的浮點數,其範圍為 1.7E-308~1.7E+308,其數值可以使用指數的方式來表示。
<?php $number1=12.34; //變數number1為正浮點數12.34 echo $number1; echo "<br>"; //輸出HTML斷行 $number2=-12.34; //變數number2為負浮點數-12.34 echo $number2; echo "<br>"; //輸出HTML斷行 $number3=123.4567e3; //變數number3為123.4567e3,相當於123456.7 echo $number3; echo "<br>"; //輸出HTML斷行 $number4=123.4567e-2; //變數number4為123.4567e-2,相當於1.234567 echo $number4; echo "<br>"; //輸出HTML斷行 ?>
執行結果如下:
12.34
-12.34
123456.7
1.234567
字串(string)
字串即是一串文字資料,使用時必須使用單引號(')或雙引號(")來包住以表示其為文字內容,當然其代表的意義也不相同。若使用雙引號包住含有變數的字串時,該變數會被[置入],但若是使用單引號來包住含有變數的字串,則會直接顯示該字串。
<?php $name="Mary"; //設定變數name為Mary $str1="Hello! $name."; //設定變數str1為Hello! $name,並使用雙引號 echo $str1; //顯示變數str1的內容 echo "<br>"; $str2='Hello! $name.'; //設定變數str2為Hello! $name,並使用單引號 echo $str2; //顯示變數str2內容 ?>
執行結果如下:
Hello! Mary.
Hello! $name.
在PHP字串中,如果要使用一些特殊字元,例如單引號或雙引號,這些特殊字元在被使用於字串內時,必須加入反斜線的跳脫字元,才能在字串中顯示出特殊字元與功用,如下表:
特殊字元 | 用途 |
---|---|
\' | 表示'符號 |
\" | 表示"符號 |
\$ | 表示$符號 |
\\ | 表示\符號 |
\n | 表示換行 |
\t | 表示定位點 |
\r | 表示游標至列首 |
布林(boolean)
布林即是真假值,其值可以為true(真)或false(假)兩種,通常會與設定的條件判斷一起使用,以判斷條件是否成立。
<?php $boolean1=true; //變數boolean1為真 $boolean2=false; //變數boolean2為假 if ($boolean1){ //判斷變數boolean1是否為真 echo "變數boolean1為真<br>"; }else { echo "變數boolean1為假<br>"; } if ($boolean2){ echo "變數boolean2為真<br>"; //判斷變數boolean2是否為真 }else { echo "變數boolean2為假<br>"; ?>
執行結果:
變數boolean1為真
變數boolean2為假
物件(objects)
物件即是透過類別(class)產生一個新的物件變數。所謂的類別即是一種可以自訂的建構,建構內包含相關的變數和運作上所使用的函式,所產生的物件可以設定類別內的相關變數與執行類別內的使用函式。
陣列(arrays)
陣列即是一種用來存放多個相同資料類型的變數。
資源(resources)
資源是指變數內容是一個外部資源,可以包括是圖檔、文件、資料庫連線...等。
空值(null)
空值即是指變數內無任何資料或指向任何資料,會以null 來表示空值。
<?php $number1= 30; echo $number1; echo "<br>"; $number2= 50; echo $number2; echo "<br>"; $number1= null; //變數$number1為空值 echo $number1; echo "<br>"; unset ($number2); //使用函式unset()將變數$number2刪除 echo $number2; //印出變數則出現錯誤 echo "<br>"; ?>
執行結果:
30
50
轉換型態
當變數型態在使用過程中需要轉換型態,我們可以透過以下兩種方式來進行變數型態轉換:
1. 強制轉換
以型態強制轉換,即是在變數或運算子前加上指定的資料型態強制進行轉換,如下:
<?php $number= 30.56; //變數number為浮點數型態 echo $number; echo "<br>"; $number= (int)$number; //強制轉換變數number為整數型態 echo $number; ?>
執行結果:
30.56
30
2. 使用settype函式
<?php $number= 30.56; //變數number為浮點數型態 echo $number; echo "<br>"; settype($number, "int"); //使用settype函式轉換變數number為整數型態 echo $number; ?>
執行結果:
30.56
30