您好,登錄后才能下訂單哦!
1. PHP內(nèi)置類型有
四種標(biāo)量類型 bool int float(或稱double) string
兩種復(fù)合類型 array object
兩種特殊類型 resource NULL
2.相關(guān)命令
查看類型 gettype
判斷類型 is_xxx
強(qiáng)制轉(zhuǎn)換類型 (xxx)變量 或者settype
獲取變量的當(dāng)前類型值
xxxval();
如intval,boolval,floatval,strval
is_numeric檢測變量是否為數(shù)字或數(shù)字字符串
3.詳細(xì)介紹
-------------------------------------
bool:TRUE or FALSE
以下值被認(rèn)為是FALSE
bool false
int 0
float 0.0
string “” or “0”
arrray []
NULL null或尚未被賦值的變量
從空標(biāo)記生成的SimpleXML對象
其他都是TRUE(包括任何source資源)
注意:-1和其他非零值(不論正負(fù)都為TRUE)
所以可擴(kuò)展為 -1>false為真
--------------------------------------
integer:集合{…-2,-1,0,1,2}中的一個數(shù)
二進(jìn)制,十六進(jìn)制,八進(jìn)制均為int類型標(biāo)量
注意:二進(jìn)制表達(dá)的integer在5.4起可用
二進(jìn)制 0b
八進(jìn)制 0
十六進(jìn)制 0x
注意:32位電腦的int占4個字節(jié),每個字節(jié)8個單元,所以最大值為21億左右,64位為9223372036854775807,計(jì)算方式為最大的正數(shù)是 01..1 后面31個1, 結(jié)果是 2147483647,最小的負(fù)數(shù)是 10...0后面31個0, 計(jì)算方法是用補(bǔ)碼, 結(jié)果是 -2147483648, 而0xffffffff 是 -1
注意:如果向八進(jìn)制傳遞一個非法數(shù)字(8,9)則本位以及后面的位將會被忽略(如012954)的八進(jìn)制值為012,十進(jìn)制值為10
注意:如果INT溢出將會被自動轉(zhuǎn)換為float類型
注意:不要將未知的分?jǐn)?shù)強(qiáng)制轉(zhuǎn)換為int,不然結(jié)果將會不可預(yù)料
如(int) ( (0.1+0.7) * 10 )的值為7,而不是8.
--------------------------------------
float:浮點(diǎn)的形式有以下幾種
LNUM [0-9]+ DNUM ([0-9]*[\.]{LNUM}) | ({LNUM}[\.][0-9]*) EXPONENT_DNUM [+-]?(({LNUM} | {DNUM}) [eE][+-]? {LNUM})
浮點(diǎn)的長度與平臺設(shè)置有關(guān)
注意:永遠(yuǎn)不要相信浮點(diǎn)數(shù)結(jié)果精確到了最后一位,也永遠(yuǎn)不要比較兩個浮點(diǎn)數(shù)是否相等。因?yàn)橹灰↑c(diǎn)數(shù)換算成二進(jìn)制是無窮盡的,那么它的實(shí)際值是略小于它本身的,如0.1實(shí)際值為0.0999999…(二進(jìn)制為0.000110011001100…),如何要比較兩浮點(diǎn)數(shù)是否相等,可以控制精度為小數(shù)點(diǎn)后XX位 如0.000001,然后將兩數(shù)相減和此極小值比較,如果小于此值,則認(rèn)為在XXX位精度的情況下,這兩個浮點(diǎn)數(shù)是相等的。
注意:有時數(shù)學(xué)運(yùn)算的結(jié)果為NaN,它代表任何不同值,所以不能用于與其他任何類型值比較(包括自身),可用is_nan判斷。
注意:INF是無窮大的意思。
--------------------------------------
string:郵一系列的字符組成,每個字符占一個字節(jié),因此PHP只支持256的字符集,不支持unicode。
表示方式為‘’,“”,<<<‘eof’xxxeof(xxx中的變量不會被解析),<<<“eof”xxxeof(xxx中的變量可以被解析).
提示:string最大可以達(dá)到2GB。
提示:PHP_EOL代表換行。
提示:string中的變量最好用{}括起來。
{}可擴(kuò)展至類靜態(tài)變量:{${beers::$ale}},{${beers::softdrink}}
提示:PHP 的字符串在內(nèi)部是字節(jié)組成的數(shù)組。因此string可以被當(dāng)作Array處理,每一個字符可當(dāng)作一個元素。
注意:用超出字符串長度的下標(biāo)寫入將會拉長該字符串并以空格填充。 如$a = "abc“ 如果操作$a[4] = “d”,那么字符串長度將會被擴(kuò)展到5,下標(biāo)3的位置將會以空格填充。
注意:下標(biāo)必須為整數(shù)或可轉(zhuǎn)換為整數(shù)的字符串。
大部分PHP值(除了resource)可以轉(zhuǎn)變成STRING,即串行化,可用serialize來實(shí)現(xiàn)。
--------------------------------------
array:是一個有序映射。
5.4起用[]代替array()。
鍵名如果是合法整型值的字符串,會被轉(zhuǎn)換,“8”=8,但“08”不能被轉(zhuǎn)換,因?yàn)樗皇呛戏ǖ氖M(jìn)制。
浮點(diǎn)鍵名會被轉(zhuǎn)換為整型,但小數(shù)會被舍去。
布爾鍵名會被轉(zhuǎn)換為0,1。
null鍵名被轉(zhuǎn)換為“”。
數(shù)組和對象不能成為鍵名。
如果出現(xiàn)相同的鍵名,則后面的會覆蓋前面的。
新建,修改,刪除(unset)。
--------------------------------------
object:新建一個對象 new abc;
將其他任何類型的值轉(zhuǎn)換為對象,將會產(chǎn)生一個public scalar屬性,值為變量的值。(數(shù)組轉(zhuǎn)換為obj將會得到與數(shù)組結(jié)構(gòu)相同的,元素都為public的對象)
--------------------------------------
resource:一種特殊變量,保存到外部資源的一個引用。
常用函數(shù)為:get_resource_type取得資源類型。
由于資源類型變量保存有為打開文件、數(shù)據(jù)庫連接、圖形畫布區(qū)域等的特殊句柄,因此將其它類型的值轉(zhuǎn)換為資源沒有意義。
自動回收,所以不必手動銷毀,但持久數(shù)據(jù)庫連接比較特殊,它不會被回收掉。
--------------------------------------
NULL:表示NULL。
被賦值為NULL,尚未被賦值,UNSET 都會得到NULL。
使用 (unset) $var 將一個變量轉(zhuǎn)換為 null 將不會刪除該變量或 unset 其值。僅是返回 NULL 值而已。
--------------------------------------
callback回調(diào)類型:call_user_func call_user_func_array 實(shí)際運(yùn)用中才得知。
--------------------------------------
字符與ascii之間的轉(zhuǎn)換可用函數(shù)(C++可直接將字符轉(zhuǎn)換為INT取得節(jié)ascii碼)
ord,chr
4.類型轉(zhuǎn)換的判別
進(jìn)制轉(zhuǎn)換的函數(shù)為:base_convert(值,當(dāng)前進(jìn)制,目標(biāo)進(jìn)制)
提示:如果字符串轉(zhuǎn)進(jìn)制則當(dāng)前進(jìn)制和目標(biāo)進(jìn)制都一樣 如base_convert("0b11",2,2);則可轉(zhuǎn)換成二進(jìn)制,但需要理解的是,轉(zhuǎn)換后的類型仍然是string,但可以進(jìn)行位運(yùn)算了。
如果有一個是float,則運(yùn)算都轉(zhuǎn)為float。否則都是int
注意:轉(zhuǎn)換為二進(jìn)制(binary)
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。