PHP 支援8種基本的資料類型。
四種標量類型:
boolean (布爾型) integer (整型) float (浮點型, 也稱作 double) string (字串)
兩種複合類型:
array (數組) object (對象)
最後是兩種特殊類型:
resource (資源) NULL (NULL)
為了確保代碼的易讀性,本手冊還介紹了一些偽類型:
mixed number callback
以及偽變數 $....
可能還會讀到一些關於“雙精確度(double)”類型的參考。實際上 double 和 float 是相同的,由於一些曆史的原因,這兩個名稱同時存在。
變數的類型通常不是由程式員設定的,確切地說,是由 PHP 根據該變數使用的上下文在運行時決定的。
Note: 如果想查看某個運算式的值和類型,用 var_dump()。
如果只是想得到一個易讀懂的類型的表達方式用於調試,用 gettype()。要查看某個類型,不要用 gettype(),而用 is_type 函數。以下是一些範例:
如果要將一個變數強制轉換為某類型,可以對其使用強制轉換或者 settype() 函數。
注意變數根據其當時的類型在特定場合下會表現出不同的值。更多資訊見類型戲法。此外,你還可以參考 PHP 類型比較表看不同類型相互比較的例子。
#
二、PHP的資料類型Int zjj = 100 ; // 這種賦值是對的 Int zjj = " hello,world " ; // 這種編譯器就會提示錯誤 在PHP中,對變數的資料類型不需要聲明,可以直接賦值。如下面的$zjj = 100 ; // 表示zjj為整型 $zjj = " hello,world " // 表示zjj為字串型 PHP中的資料類型分成兩種:一是純量資料型別,另一種就是複合資料型別。純量資料型別有:布爾型(boolean) 整型(integer) 浮點型(foat也叫做double) 複合資料有:數組(array) 對象( object )還有兩種特殊的資料資源(resource) 空值(NULL) 1 、布爾型是最簡單的變數,布爾變數:true和false值要設定一個布爾變數,只需將這兩個值賦給變數就行了。PHP中就算是關鍵字也可以做變數名。 " ); // 起到斷行符號的作用 echo( " 我是關鍵字 " . True) ?> 執行結果:我是變數1 // 這裡true就是1 我是關鍵字1true和false實際上是代表數值1和0,因此true在輸出時顯示為1,但是在給變數賦值的時候,如果賦值為1,則被當成整型,如果被賦值為true,則被當成布爾型當轉換為布爾型時,以下值被認為是false ( 1 )布爾值false( 2 )整型值0(零)( 3 )浮點型值0. 0 (零)( 4 )空白字串和字串 " 0 " ( 5 )沒有成員變數的數組( 6 )沒有單元的對象(僅適用php4)( 7 )特殊類型NULL而所有其他值都被認為是TRUE包括任何資源。 2 、整型 + 2147483647到 - 2147483647 " ); $int_H = 0x7FFFFFFF ; // 十六進位賦值 echo($int_H); echo( "
" ); $int_O = 017777777777 ; // 八進位賦值 echo($int_O); echo( "
" ); ?> 執行結果: 2147483647 2147483647 2147483647 如果指定一個數超出了inter的範圍,將會被解釋為float 3 、浮點型 1 .7E - 308到1.7E + 308 " ); $float_2 = 9E10; echo($float_2); echo( "
" ); $float_3 = 9E + 10 ; echo($float_3); ?> 執行結果: 90000000000 90000000000 90000000000 4 、字串PHP中有三種方式定義字串 1 、單引號方式。$single_str = ' 我是人 ' ;如果想在瀏覽中輸出單引號,必須在字串中加入轉義符號“\” ' ; //正常輸出 echo $single_str; $single_str = ' 輸出單引號: \'嘿嘿,我在單引號裡面\'
' ; //加了轉義符可以輸出單引號 echo $single_str; $single_str = ' 輸出雙引號:"我在雙引號裡面"
' ; //正常輸出 print $single_str; $single_str = ' 輸雙貨幣符號:$ ' ; //正常輸出 print $single_str; ?> 執行結果:我被單引號括起來了 ! 輸出單引號: ' 嘿嘿,我在單引號裡面 ' 輸出雙引號: " 我在雙引號裡面 " 輸雙貨幣符號:$( 2 )、雙引號方式$Double_Str = " 我是人 " 為了在字串中輸出各種特殊字元,可以使用轉義符$Double_Str = " 輸出貨幣符號:\$ " ;$Double_Str = " 輸出反斜線:\\ " ; " ; echo $single_str; $single_str = " 輸出單引號:'嘿嘿,我在單引號裡面'
" ; // 不需要轉義符 echo $single_str; $single_str = " 輸出雙引號:\"我在雙引號裡面\"
" ; // 需要轉義符 print $single_str; $single_str = " 輸出貨幣符號:\$
" ; // 需要轉義符 print $single_str; $single_str = " 輸出反斜線 :\\
" ; // 需要轉義符 print $single_str; ?> 執行結果:輸出單引號: ' 嘿嘿,我在單引號裡面 ' 輸出雙引號: " 我在雙引號裡面 " 輸出貨幣符號:$ 輸出反斜線 :\ ( 3 )、Heredoc 方式給字串賦值 貨幣符號 $ < br > //zjj1和zjj都是可以隨便起名字的。 反斜線 \ < br > " 我愛你 " < br > ' 我恨你 ' zjj; echo $zjj1_str; ?> 執行結果:你好貨幣符號 $ 反斜線 \ " 我愛你 " ' 我恨你 ' ( 4 )、串中的變數 " ; // 雙引號字串中包含變數$str_1 echo $str_2; $str_1 = ' 我是變數的值 ' ; $str_2 = ' str_1 : $str_1
' ; // 單引號中包含字串的值 echo $str_2; $str_1 = " 我是變數的值! " ; $str_2 = " str_1 : $str_12
" ; // 引用的變數名後,多了個字元2即$str_12 echo $str_2; $str_1 = " 我是變數的值! " ; $str_2 = " str_1 : ${str_1}2
" ; // 引用的變數名後,多了個字元2即$str_12 echo $str_2; ?> 執行結果:str_1 : 我是變數的值 ! str_1 : $str_1str_1 : str_1 : 我是變數的值 ! 2 從輸出可以看出,雙引號字串是賦值的含義,直接輸出變數的值。而單引號的字串,包含的是變數的名稱,可以理解為直接運行語句的結果,直接輸出變數的名稱而不是變數的值。$str_2 = " str_1 : $str_12
" ; 這句如果變數後面跟著非空格的字元,會讓編譯器糊塗,會把$str_12當成變數,而上面又沒有定義,因此會輸出空值。為瞭解決這個問題可以用${str_1} 2 或{$str_1} 2 這個來表達。
使用 PHP 函數對變數 $x 進行比較
運算式 gettype() empty() is_null() isset() boolean : if($x)
| $x = ""; |
string |
TRUE |
FALSE |
TRUE |
FALSE |
| $x = null; |
NULL |
TRUE |
TRUE |
FALSE |
FALSE |
| var $x; |
NULL |
TRUE |
TRUE |
FALSE |
FALSE |
| $x is undefined |
NULL |
TRUE |
TRUE |
FALSE |
FALSE |
| $x = array(); |
array |
TRUE |
FALSE |
TRUE |
FALSE |
| $x = false; |
boolean |
TRUE |
FALSE |
TRUE |
FALSE |
| $x = true; |
boolean |
FALSE |
FALSE |
TRUE |
TRUE |
| $x = 1; |
integer |
FALSE |
FALSE |
TRUE |
TRUE |
| $x = 42; |
integer |
FALSE |
FALSE |
TRUE |
TRUE |
| $x = 0; |
integer |
TRUE |
FALSE |
TRUE |
FALSE |
| $x = -1; |
integer |
FALSE |
FALSE |
TRUE |
TRUE |
| $x = "1"; |
string |
FALSE |
FALSE |
TRUE |
TRUE |
| $x = "0"; |
string |
TRUE |
FALSE |
TRUE |
FALSE |
| $x = "-1"; |
string |
FALSE |
FALSE |
TRUE |
TRUE |
| $x = "php"; |
string |
FALSE |
FALSE |
TRUE |
TRUE |
| $x = "true"; |
string |
FALSE |
FALSE |
TRUE |
TRUE |
| $x = "false"; |
string |
FALSE |
FALSE |
TRUE |
TRUE |
鬆散比較 ==
TRUE FALSE 1 0 -1 "1" "0" "-1" NULL array() "php" ""
| TRUE |
TRUE |
FALSE |
TRUE |
FALSE |
TRUE |
TRUE |
FALSE |
TRUE |
FALSE |
FALSE |
TRUE |
FALSE |
| FALSE |
FALSE |
TRUE |
FALSE |
TRUE |
FALSE |
FALSE |
TRUE |
FALSE |
TRUE |
TRUE |
FALSE |
TRUE |
| 1 |
TRUE |
FALSE |
TRUE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
| 0 |
FALSE |
TRUE |
FALSE |
TRUE |
FALSE |
FALSE |
TRUE |
FALSE |
TRUE |
FALSE |
TRUE |
TRUE |
| -1 |
TRUE |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
| "1" |
TRUE |
FALSE |
TRUE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
| "0" |
FALSE |
TRUE |
FALSE |
TRUE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
| "-1" |
TRUE |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
| NULL |
FALSE |
TRUE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
TRUE |
FALSE |
TRUE |
| array() |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
TRUE |
FALSE |
FALSE |
| "php" |
TRUE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
| "" |
FALSE |
TRUE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
TRUE |
嚴格比較 ===
TRUE FALSE 1 0 -1 "1" "0" "-1" NULL array() "php" ""
| TRUE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
| FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
| 1 |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
| 0 |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
| -1 |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
| "1" |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
| "0" |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
| "-1" |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
| NULL |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
| array() |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
| "php" |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
| "" |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
#