溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

復(fù)習(xí)PHP-語言參考-類型

發(fā)布時間:2020-07-10 01:40:38 來源:網(wǎng)絡(luò) 閱讀:436 作者:qzd1989 欄目:web開發(fā)

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)

向AI問一下細(xì)節(jié)

免責(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)容。

AI