資料型態

概述及用途
    PHP語法對資料型態有相當大的彈性,他不需要如某些程式語言必須先宣告,而是變數在使用時被給定的值就是該變數的資料型態,但仍有一套資料型態提供設定。

   底下介紹八種資料型態:
 

說明與範例

布林值(boolean)
說明     boolean 用來表達事件得"真"或"假",也就是 TRUE(1) 或 FALSE(0),沒有大小寫的分別。除了可以直接設定,在某些情況下也可以強制變數回傳不同的布林值。
 
範例 直接設定布林值 顯示結果 其他回傳False的情況 顯示結果
<?php
$X =True;
$Y =False;
echo "\$X的布林值:",$X,"<br>";
echo "\$Y的布林值:",$Y,"<br>";
?>
<?php
$a=False;  echo (boolean)$a;
$b=0;        echo (boolean)$b;
$c=0.0;     echo (boolean)$c;
$d='';        echo (boolean)$d;
$e[0];       echo (boolean)$e;
$f;             echo (boolean)$f;
echo "若以上皆無回傳值,則表示各布林值為False";
?>
附註     回傳False的情況可概述成以下幾種:布林值=False、整數值=0、浮點數=0.0、空字串、沒有陣列元素的陣列 、沒有任何成員變數的物件、NULL或沒有設定任何值的變數,以上情況以外的布林值為True。布林值在許多邏輯控制上相當好用。範例中的(boolean)是用來強迫作型態轉換的。
 
整數(integer)
說明     就是我們熟悉的數字應該不用特別解釋吧,只是分成了10進制、8進制、16進制的表示方式,而在 32 位元的作業系統中,它的有效範圍為 -2,147,483,648 ~ 2,147,483,647,超出範圍的會被視為浮點數的型態。
 
範例 各種表示方式 顯示結果
<?php
$A=123;      //十進制
$B=-123;     //負數
$C=0123;    //八進制
$D=0x123;  //十六進制
echo "A=$A <br> B=$B <br> C=$C <br> D=$D <br>";
?>
浮點數(float)
說明     也叫“floats”,“doubles”或“real numbers”,在 32 位元的作業系統中,它的有效範圍為 1.7E-308 ~ 1.7E+308。
 
範例 各種表示方式 顯示結果
<?php
$A=0.123;
$B=-0.123;
$C=123e3;
$D=123e-3;
echo "A=$A <br> B=$B <br> C=$C <br> D=$D <br>";
?>
字串(string)
說明      在 PHP 中有三種指定字串的方法:雙引號(")、單引號('),以及所謂 heredoc 語法(<<<)。
單引號:
    在字串資料的前後加上單引號( ' )即可使用,值得注意的是單引號中的變數不會以變數值代入,且如果字串裡要出現單引號( ' )或反斜線( \ ),就必須在字元前面加上反斜線( \ )來逃脫,如:( \' ) , ( \\ ),反斜線也就是逃脫字元是用來讓接在後面的字元當成字串的一
部分,為了不與雙引號和單引號混淆。

雙引號:
    在字串資料的前後加上雙引號( " )即可使用,值得注意的是雙引號中的變數會以變數值代入,同上在雙引號中必須使用( \" ) , ( \\ ),才會出現雙引號( " )與反斜線( \ ),還有其他在雙引號中可以使用逃脫字元反斜線( \ )的特殊狀況,列表如下:
字元 說明
\n 換行且回到下一行的最前端
\r 換行
\t 跳一定點(Tab的效果)
\\ 顯示反斜線( \ )
\" 顯示雙引號( " )
\$ 顯示( $ )
\[0-7]{1,3} 八進位數值
\x[0-9A-Fa-f]{1,2} 十六進位數值

heredoc (<<<):
    是一種表達字串的方式,利用(<<<)來包含字串資料。在(<<<)後面必須給一個指標名稱
,然後才接字串資料,當資料結束時,必須再以相同的指標名稱作為結束,要特別注意的是結束的指標一定要放在該行的行首,否則將導致錯誤。
 

範例 1.單引號 顯示結果 2.雙引號 顯示結果
<?php
$A ='字串';
$B ='變數 $A';
$C ='顯示單引號( \' )';
$D ='顯示反斜線( \\ )';
echo "$A <br> $B <br> $C <br> $D";
?>
<?php
$A ="字串";
$B ="變數 $A";
$C ="顯示雙引號( \" )";
$D ="顯示反斜線( \\ )";
echo "$A <br> $B <br> $C <br> $D";
?>
範例 3.heredoc 顯示結果 4.其他 顯示結果
<?php
$str = <<< FLAG
Simpson!!!Ha!
Simpson!!!Ha!Ha!
Simpson!!!Ha!Ha!Ha!
FLAG;
echo $str;
?>
<?php
$A ="123\n456\r789\t\$";
$B ="Simp";
$C ="son";
$D =$B.$C;
$E =$B."le";
echo "$A <br> $D <br> $E";
?>
附註     範例4的$A的效果並不會在瀏覽器顯現,必須檢視原始檔才看得出來,也就是作用在原始檔上,而$D、$E所使用的( . )稱作String Operator也就是字串運算元,主要是用來連接兩個字串,要注意的是連結時,必須用雙引號或單引號框起來再做連結,詳細使用方法可至PHP官網查詢 ,在運算元部份會再提到,值得一提的是它可以在echo輸出時搭配html標籤使用,可以達到意想不到的效果,另外,在雙引號中使用單引號或在單引號中使用雙引號都不需使用跳脫字元,可以自己試試看喔~
 
陣列(array)
說明     可以是二維、三維或者多維陣列,其中的元素也很自由,可以是 string、integer 或者 float,甚至是 array。若無特別設定,由第 0 個元素開始配置。後面會再詳述。
 
範例 陣列表示方式 顯示結果
<?php
$A[]=0; $A[]=1; $A[100]=2;
$B=array(a,b,c);
$C[0][0]='棒';$C[0][1]='老虎';$C[1][0]='雞';$C[1][1]='蟲';
print_r($A);print_r($B);print_r($C);
//print_r可用來輸出陣列的值
?>
物件(object)
說明     物件型態屬較高階的PHP語法,要先宣告類別,然後使用new初始化給指定變數,之後才可用其他方式使用物件。這裡僅做一示範。
範例 物件型態小示範 顯示結果
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
<?php
class clothes
{
    var $size;
    function set_size($new_size) //設定尺寸
    {
        $this->size=$new_size;
    }
    function show_size() //顯示尺寸
    {
        echo $this->size;
        echo"<br>";
    }
}

$A=new clothes(); $B=new clothes();
$A->set_size("XL"); $B->set_size("L");
echo "A clothes is "; $A->show_size();
echo "B clothes is "; $B->show_size();
?>
附註 02~14:宣告class類別
15~16:產生class物件變數
16~20:利用clothes物件做設定及顯示的處理
外部資源(resource)
說明     資源型態變數是負責與外部資源的聯繫,例如:開啟檔案、資料庫聯結、PDF等等。通過專門的函數來建立和使用,後面會有更深入的函數介紹。
範例 $link=mysql_connect('localhost','root','abcdef');
空值(null)
說明     特殊的 NULL 值表示一個變數沒有值,NULL 類型唯一可能的值就是 NULL。 也可以利用 unset( ) 函數把變數內容「清空」,或直接設定變數為NULL。
範例 產生空值的方式 顯示結果
<?php
$n1=NULL; echo "n1=$n1 <br>";
$n2=12332; echo "n2=$n2 <br>";
unset($n2); echo "n2=$n2 <br>";
$n3; echo "n3=$n3";
?>