PHP的資料型態
我們的電腦運作時,存放資料的地方就是記憶體,記憶體的資料都是由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
PHP的資料型態
我們的電腦運作時,存放資料的地方就是記憶體,記憶體的資料都是由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