php支持哪8种数据类型,PHP八种数据类型+使用实例
PHP的八種數(shù)據(jù)類型
?PHP中變量的數(shù)據(jù)類型通常不是由程序員設(shè)定的,準(zhǔn)確的說,是PHP根據(jù)該變量使用的上下文在運(yùn)行時(shí)決定的,簡單的說就是,我們不需要設(shè)定變量的數(shù)據(jù)類型,PHP會自動(dòng)識別。
四種標(biāo)量數(shù)據(jù)類型
boolean(布爾型)
也叫bool型,只有兩種值,true或者是false,它不區(qū)分大小寫
string(字符串型)
字符串是連續(xù)的字符序列,由數(shù)字,字母和符號組成。
integer(整型)
整型就是我們常說的整數(shù),它只能是整數(shù)
float(浮點(diǎn)型)
浮點(diǎn)數(shù)據(jù)類型就是我們常見的小數(shù),它既可以用來存儲整數(shù),也可以存儲小數(shù)。
兩種復(fù)合數(shù)據(jù)類型
array(數(shù)組)
數(shù)組是一組數(shù)據(jù)的組合,它把一系列的數(shù)組組合起來,形成一個(gè)可操作的整體。
object(對象)
對象是系統(tǒng)中用來描述客觀事物的一個(gè)實(shí)體,它是構(gòu)成系統(tǒng)的一個(gè)基本單位。一個(gè)對象由一組屬性和對這組屬性進(jìn)行操作的一組服務(wù)組成。
兩種特殊類型
resource(資源)
資源是一種特殊的變量類型,保存了到外部資源的一個(gè)引用:如打開文件、數(shù)據(jù)庫連接、圖形畫布區(qū)域等。
空值(null)
空值,在名字上來看它就是沒有值,它表示沒有為該變量設(shè)置任何值。
php:布爾型(boolean)數(shù)據(jù)類型實(shí)例詳解
只能保存兩個(gè)值true值和false值。它不區(qū)分大小寫,所以true寫成TRUE是一樣的。
}else{echo '假';
}
代碼運(yùn)行結(jié)果:真
注意:在PHP中不是只有boolean值為假,在一些特殊情況下非boolean值也被認(rèn)為是假。
這些特殊情況為:0,0.0,“0”,空白字符串(“”),只聲明沒有賦值的數(shù)組等。
php:字符串(string)數(shù)據(jù)類型實(shí)例詳解
在PHP中,有三種定義字符串的方式,分別是單引號('),雙引號(“)和定界符(<<
單引號和雙引號的不同之處就在雙引號所包含的變量會自動(dòng)的被替換成實(shí)際數(shù)值,而單引號所包含的的變量則按普通的字符創(chuàng)輸出,這段換什么意思呢,我們下面來一下示例
單引號和雙引號定義字符串不同之處的示例
<?php $i = 'cyy';echo "$i";echo "
";echo '$i';
示例運(yùn)行結(jié)果如下圖:
除了上面的不同點(diǎn)之外,再有就是兩者對轉(zhuǎn)義字符的使用不同。使用單引號時(shí),只要對單引號“ ' ”進(jìn)行轉(zhuǎn)義即可,但使用雙引號(")時(shí),還要注意“ " ”、“$”等字符的使用,這些特殊字符都要通過轉(zhuǎn)義符“”來顯示,常用的轉(zhuǎn)義字符如下表:
這里有一點(diǎn)要注意的是,
和在Windows系統(tǒng)中沒有什么區(qū)別,都可以當(dāng)作回車符。但是在Linux系統(tǒng)中則是兩種效果,在Linux中,
表示換到下一行,卻不會回到行首;而表示光標(biāo)回到行首,但仍然在本行,如果有使用Linux操作系統(tǒng)的,可以嘗試一下。
在定義一些簡單的字符串時(shí),使用單引號是一個(gè)更好的處理方式。如果使用雙引號,PHP將花費(fèi)一些時(shí)間來處理字符串的轉(zhuǎn)移和變量的解析,因此,在定義字符串時(shí),如果沒有特別的要求,我們最好使用單引號
界定符示例
代碼如下:
這和雙引號效果相同,可以輸出$i
$i的值為: $istd?>
代碼運(yùn)行結(jié)果:
結(jié)束標(biāo)識符必須單獨(dú)另起一行,并且不允許有空格。在標(biāo)識符前后有其他字符或符號,也會發(fā)生系統(tǒng)錯(cuò)誤,包括注釋。
php:整型(integer)數(shù)據(jù)類型實(shí)例詳解
什么是整型數(shù)據(jù)類型
整型數(shù)據(jù)類型就是我們常說的整數(shù),它只能是整數(shù),像123456,或者-123456,這都代表整型,這些是十進(jìn)制的,還可以寫八進(jìn)制的,十六進(jìn)制的。如果使用八進(jìn)制表示,數(shù)字前面必須加0,如果用十六進(jìn)制,需要加0x.
整型是要有一個(gè)有效范圍的,有效范圍是-2447483648~+2147483647
既然有存儲范圍了,那我們現(xiàn)在說兩個(gè)整型相加一定等于整型嗎?不一定,因?yàn)槌^了整型的存儲范圍呢會產(chǎn)生一種現(xiàn)象,叫做溢出的現(xiàn)象,當(dāng)給定的數(shù)值超出了int型所能表達(dá)的最大范圍時(shí),將會被當(dāng)做float型處理,浮點(diǎn)類型它的存儲范圍比整型大。
如果在八進(jìn)制中出現(xiàn)了非法數(shù)字(8和9),則后面的數(shù)字會被忽略掉。(最新測試頁面似乎停止運(yùn)行了)
php:浮點(diǎn)型(float)數(shù)據(jù)類型實(shí)例詳解
浮點(diǎn)型的有效范圍是1.8E-308~1.8E+308。
浮點(diǎn)型數(shù)據(jù)默認(rèn)有兩種書寫格式,一種標(biāo)準(zhǔn)格式,如下
3.1415
-35.8
還有一種科學(xué)記數(shù)法格式
3.14*10^3 可以使用3.14e3來表示
浮點(diǎn)(float)數(shù)據(jù)類型示例
在下面的例子中,我們將測試不同的數(shù)字。PHP var_dump() 會返回變量的數(shù)據(jù)類型和值:
<?php $x = 10.3605;var_dump($x);echo '
';$x = 2.4e3;var_dump($x);echo '
';$x = 8E-5;var_dump($x);echo '
';
代碼運(yùn)行結(jié)果:
浮點(diǎn)型的數(shù)據(jù)只是一個(gè)近似的值,所以要盡量避免浮點(diǎn)型數(shù)值之間的比較大小,因?yàn)樽詈蟮慕Y(jié)果都是不準(zhǔn)確的。像下面這樣
}else{echo 'false';
}
代碼運(yùn)行的結(jié)果:false
php:數(shù)組(array)數(shù)據(jù)類型實(shí)例詳解
數(shù)組的定義示例
<?php $arr1 = array('a','b');$arr2 = array(0=>'a',1=>'b');$arr3 = ['a','b'];$arr4[0] = 'a';
數(shù)組中的元素個(gè)數(shù)是可以更改的,只要給數(shù)組賦值,數(shù)組就會自動(dòng)增加長度。
php:對象(object)數(shù)據(jù)類型實(shí)例詳解
如果要在定義的類里面訪問成員的屬性或者方法,可以使用偽變量 $this 。$this 用于表示 當(dāng)前對象 或 對象本身 。
例子:
var $name; //人的名字
var $age; //人的年齡
//人的成員 say() 方法
functionsay() {echo "我的名字叫:".$this->name."
";echo "我的年齡是:".$this->age;
}
}//類定義結(jié)束
//實(shí)例化一個(gè)對象
$p1 = newPerson();//給 $p1 對象屬性賦值
$p1->name = "cyy";$p1->age = 25;//調(diào)用對象中的 say()方法
$p1->say();
運(yùn)行該例子,輸出:
我的名字叫:cyy
我的年齡是:25
php:資源(resource)數(shù)據(jù)類型實(shí)例詳解
什么是資源數(shù)據(jù)類型?
資源數(shù)據(jù)類型是PHP4引進(jìn)的。資源是一種特殊的變量類型,保存了到外部資源的一個(gè)引用:如打開文件、數(shù)據(jù)庫連接、圖形畫布區(qū)域等。
資源是通過專門的函數(shù)來建立和使用的。
資源變量在PHP中的使用
打印結(jié)果:
php:空值(null)數(shù)據(jù)類型實(shí)例詳解
空值(null)是不區(qū)別大小寫的,也就是null與NULL或Null是一樣的。
在PHP中被賦予空值的情況有三種:
第一種:
尚未被賦值
第二種:
被賦值為 NULL。
第三種:
被unset()函數(shù)處理過的變量
is_null函數(shù)用來判斷變量是否為null,這個(gè)函數(shù)是返回一個(gè)boolean型,如果變量為null,則返回true,否則返回false。unset()函數(shù)是用來銷毀變量。
php數(shù)據(jù)類型轉(zhuǎn)換實(shí)例詳解
PHP中的類型轉(zhuǎn)換非常簡單,有三種轉(zhuǎn)換方法:
第一種:
只需要在要轉(zhuǎn)換的變量之前加上用括號括起來的類型名稱即可,像下面這樣
<?php $num1 = 3.14;$num2 = (int)$num1;var_dump($num1);echo '
';var_dump($num2);
代碼運(yùn)行結(jié)果:
第二種:
使用3個(gè)具體類型的轉(zhuǎn)換函數(shù),intval()、floatval()、strval()
<?php $num = '123.9abc';$num2 = intval($num);var_dump($num2);echo '
';$num2 = floatval($num);var_dump($num2);echo '
';$num2 = strval($num);var_dump($num2);
代碼運(yùn)行結(jié)果:
第三種:
使用settype()函數(shù),該函數(shù)可以將指定的變量轉(zhuǎn)換成指定的數(shù)據(jù)類型,參數(shù)var為指定的變量;參數(shù)type為指定的數(shù)據(jù)類型。參數(shù)type有7個(gè)可選值,即boolean,float,integer,array,null,object和string,如果轉(zhuǎn)換成功setype()函數(shù)返回true,否則返回false。如下:
<?php $num = '123.9';$res = settype($num,'int');var_dump($res);echo '
';var_dump($num);
代碼運(yùn)行結(jié)果:
當(dāng)字符串轉(zhuǎn)換為整型或浮點(diǎn)型時(shí),如果字符串是以數(shù)字開頭的,就會先把數(shù)字部分轉(zhuǎn)換為整型,在舍去后面的字符串;如果數(shù)字中含有小數(shù)點(diǎn),則會取到小數(shù)前一位。
PHP數(shù)據(jù)類型轉(zhuǎn)換實(shí)例
本實(shí)例將使用第一種和第三種兩種方法將指定的字符串進(jìn)行類型轉(zhuǎn)換,比較兩種方法之間的不同,代碼如下:
<?php $num = '3.1415926r*r';echo (integer)$num.'
';echo $num.'
';echo settype($num,'integer').'
';echo $num;
代碼運(yùn)行結(jié)果:
從上面的的實(shí)例可以看到,使用integer操作符能直接輸出轉(zhuǎn)換后的變量類型,并且原變量不發(fā)生任何變化。而是用settype()函數(shù)返回的是1,也就是true,原變量就改變了,在實(shí)際應(yīng)用中,可根據(jù)自己的需求選擇轉(zhuǎn)換方式。
PHP數(shù)據(jù)類型檢測實(shí)例詳解
PHP檢測數(shù)據(jù)類型的函數(shù)如下表
PHP數(shù)據(jù)類型檢測實(shí)例
PHP檢測數(shù)據(jù)類型的函數(shù)功能和用法都是相同的,我們下面的實(shí)例使用is_numeric()函數(shù)來檢測變量中的數(shù)據(jù)是否是數(shù)字。
}else{echo '不是數(shù)字類型';
}
歡迎QQ溝通討論:965794175
總結(jié)
以上是生活随笔為你收集整理的php支持哪8种数据类型,PHP八种数据类型+使用实例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql过滤效率和java过滤效率_如
- 下一篇: class h5 点击后样式变化_【ph