php常見數(shù)據(jù)類型
php中的數(shù)據(jù)類型相較于js多了很多中,但其中相當(dāng)一部分對(duì)于我們來說鮮少用到。因此我們只在這為大家介紹常見的幾種數(shù)據(jù)類型。
(1)布爾類型:Boolean
(2)整數(shù)類型:Integer
(3)浮點(diǎn)類型:Float
(4)字符類型:String
(5)數(shù)組類型:Array
(6)對(duì)象類型:Object
(7)空值類型:NULL
(1)布爾類型:Boolean
介紹數(shù)據(jù)類型之前,為大家提供兩個(gè)方法來判別變量的數(shù)據(jù)類型:
var_dump(變量|表達(dá)式):函數(shù)用來查看表達(dá)式的值和歸屬類型。
gettype(變量|表達(dá)式) :函數(shù)用來查看變量或表達(dá)式的類型。
描述:boolean是最簡單值類型,用來表示表達(dá)式的真值。
語法:一般使用TRUE或FALSE常量來指定布爾值,兩者均不區(qū)分大小寫
注意:
a.可以使用(bool)或(boolean)強(qiáng)制轉(zhuǎn)換修飾符,來對(duì)非布爾值類型的變量或表達(dá)式
進(jìn)行強(qiáng)制類型轉(zhuǎn)換。
b.當(dāng)轉(zhuǎn)換為布爾值類型時(shí),以下值被認(rèn)為是FALSE
布爾值 FALSE 本身
整型值 0(零)
浮點(diǎn)型值 0.0(零)
空字符串,以及字符串 "0"
不包括任何元素的數(shù)組
特殊類型 NULL(包括尚未賦值的變量)
c.所有其它值都被認(rèn)為是 TRUE(包括任何資源 和 NAN)
強(qiáng)調(diào):
-1 和其它非零值(不論正負(fù))一樣,被認(rèn)為是 TRUE
(2)整數(shù)類型Integer
描述:整數(shù)指的是集合 ? = {..., -2, -1, 0, 1, 2, ...} 中的某個(gè)數(shù)
語法:
a.整型值可以使用十進(jìn)制,十六進(jìn)制,八進(jìn)制或二進(jìn)制表示,
前面可以加上可選的符號(hào)(- 或者 +)。
b.二進(jìn)制表達(dá)的 integer 自 PHP 5.4.0 起可用。
c.要使用八進(jìn)制表達(dá),數(shù)字前必須加上 0(零)。
要使用十六進(jìn)制表達(dá),數(shù)字前必須加上 0x。
要使用二進(jìn)制表達(dá),數(shù)字前必須加上 0b。
注意:
a. PHP7以前的版本,如果向八進(jìn)制數(shù)傳遞了一個(gè)非法數(shù)字(即 8 或 9),
則后面其余數(shù)字會(huì)被忽略。PHP7以后,會(huì)產(chǎn)生 Parse Error錯(cuò)誤
b. PHP 中沒有整除的運(yùn)算符。1/2 產(chǎn)生出 float 0.5。
c.使用(int)或(integer)方法對(duì)非整型變量或表達(dá)式進(jìn)行強(qiáng)制類型轉(zhuǎn)換
強(qiáng)調(diào):
絕不要將未知的分?jǐn)?shù)強(qiáng)制轉(zhuǎn)換為 integer,這樣有時(shí)會(huì)導(dǎo)致不可預(yù)料的結(jié)果。
(3)浮點(diǎn)類型Float
描述:浮點(diǎn)類型,又被稱為浮點(diǎn)數(shù)Float或者雙精度數(shù)double或者實(shí)數(shù)real。
語法:可以通過一下任何一種類型來定義
$a = 1.234;
$b = 1.2e3;
$c = 7E-10;
注意:
a.永遠(yuǎn)不要直接比較兩個(gè)浮點(diǎn)數(shù)的大小,因?yàn)檫@樣沒有任何意義
b.如果必須比較浮點(diǎn)數(shù)大小,則可以采用【epsilon】機(jī)器極小值方式進(jìn)行比
較。
c.NAN表示數(shù)學(xué)上無法用浮點(diǎn)數(shù)具體描述出的數(shù)字,和true之外的任何值進(jìn)
行松散或嚴(yán)格比較的結(jié)果都會(huì)是false。
強(qiáng)調(diào):
由于 NAN 代表著任何不同值,不應(yīng)拿 NAN 去和其它值進(jìn)行比較,包括其自
身 。
(4)字符類型String
描述:字符類型也叫字符串類型,是由一系列字符構(gòu)成。
其中每一個(gè)字符等同于一個(gè)字節(jié),因此php中只能支持256字符集,
也正因?yàn)檫@樣其不支持Unicode。
語法:php中字符串有兩種定義語法,單引號(hào)和雙引號(hào)定義。
注意:
a.php字符串中使用轉(zhuǎn)義字符\來描述容易引起歧義的內(nèi)容
b.php對(duì)雙引號(hào)定義的字符串中的變量可以進(jìn)行內(nèi)容解析,而單引號(hào)則不行。
c.php字符串允許多行定義,但會(huì)忽略多余的空格和換行。
d.php中字符串拼接采用.點(diǎn)運(yùn)算符實(shí)現(xiàn)!不是+加號(hào)!?。。。。。?br>
例子:
$frank = '張先森';
echo 'my name is $frank'."<br/>";
echo "my name is $frank";
(5)數(shù)組類型Array
描述:php中的數(shù)組實(shí)際上一個(gè)有序映射,映射就是把keys關(guān)聯(lián)到values上的類型.
語法:
array( key => value , ... )
// 鍵(key)可是是一個(gè)整數(shù) integer 或字符串 string
// 值(value)可以是任意類型的值 。
自php5.4起,可以直接通過短數(shù)組定義方式[]來替代array()。
注意:
a.php中echo僅用來輸出簡單值,而復(fù)雜數(shù)據(jù)類型則需要通過print_r()函數(shù)來輸出
b.php中的數(shù)組實(shí)際上更相似與js中的對(duì)象結(jié)構(gòu)。
c.php中數(shù)組的讀取和賦值可以通過數(shù)組名[鍵名]方式來讀寫。
d.php中數(shù)組的長度讀取通過count()函數(shù)實(shí)現(xiàn)
e.php中數(shù)組內(nèi)部添加原本并不存在的key值,不會(huì)補(bǔ)齊之間的差值,
而是僅添加當(dāng)前新輸入的key值。例:$arr[100] = 100.并不會(huì)為數(shù)組添加100個(gè)元素
例子:
print_r($frank = ['11','22','33']);
print_r($frank[0]);
$frank[100] = 960;
print_r($frank);
echo count($frank);
(6)對(duì)象類型Object
描述:php中想要?jiǎng)?chuàng)建一個(gè)對(duì)象,則必須通過new語句實(shí)例化一個(gè)類得到。
語法:$obj = new Func;
注意:
a.php中類由class關(guān)鍵字聲明,類名后沒有小括號(hào)。
b.php中類內(nèi)部的方法由->箭頭來調(diào)用,而不是.點(diǎn)運(yùn)算符。
例子:
class Peo{
function eat(){
echo '我會(huì)吃飯';
}
}
$frank = new Peo;
print_r($frank->eat());
補(bǔ)充:對(duì)于類和對(duì)象的使用方法遠(yuǎn)不止如此,而在數(shù)據(jù)類型當(dāng)中我們只需要知道
對(duì)象類型是如何創(chuàng)建的即可,剩余部分會(huì)在類和對(duì)象中詳細(xì)說明。
(7)空值類型NULL
描述:NULL表示變量未被賦值的狀態(tài),NULL類型唯一可能的值就是NULL。
注意:NULL值不區(qū)分大小寫,NULL或null都可以
例子:
var_dump($frank = NULL);