PHP中的integer類型使用分析
更新時(shí)間:2010年07月27日 19:43:00 作者:
integer 類型 就是 集合Z = {..., -2, -1, 0, 1, 2, ...}中的一個(gè)數(shù)字。
integer 可以已10進(jìn)制,8進(jìn)制,16進(jìn)制表示。
用八進(jìn)制表示的時(shí)候,數(shù)字需要已0(零)開(kāi)頭;
用十六進(jìn)制表示的時(shí)候,數(shù)字需要已0x(零x)或者0X(零大寫(xiě)X)開(kāi)頭;
integer 溢出: integer溢出的時(shí)候,會(huì)自動(dòng)的轉(zhuǎn)化為float類型。同樣的,如果integer類型的操作結(jié)果溢出了integer類型的邊界,也會(huì)自動(dòng)轉(zhuǎn)化為float類型。
需要注意的一點(diǎn)就是,integer類型沒(méi)有"/" (除法)操作,如果需要獲得一個(gè)整型可以使用round等函數(shù),或者直接使用(int)或(integer)進(jìn)行強(qiáng)制類型轉(zhuǎn)化為integer也行.
轉(zhuǎn)換為integer:
boolean 轉(zhuǎn)化為integer:
1、true 總是轉(zhuǎn)換為 1;
2、false總是轉(zhuǎn)換為 0;
float轉(zhuǎn)化為integer:
1、如果float類型值沒(méi)有超過(guò)integer的邊界值,那么轉(zhuǎn)換的時(shí)候會(huì)直接將小數(shù)部分直接截掉。
2、如果float類型值超過(guò)了integer的邊界值,那么轉(zhuǎn)換的結(jié)果是沒(méi)定義的,但幾乎肯定不是預(yù)期的結(jié)果。
array類型轉(zhuǎn)換為integer:
1、空array總是轉(zhuǎn)化為0;
2、非空array總是轉(zhuǎn)化為1;
object轉(zhuǎn)換為integer:
1、把object類型的值轉(zhuǎn)換為integer 會(huì)產(chǎn)生類似 Object of class stdClass could not be converted to int 的Notice 信息。轉(zhuǎn)換的結(jié)果為1;
string轉(zhuǎn)化為integer:
1、如果string以數(shù)字開(kāi)頭并且,其中不包含字符‘.','e','E',并且數(shù)字的值在integer范圍之內(nèi),string將轉(zhuǎn)化為integer。
$resource = fopen('d:/tmp/test.txt', 'rb');
var_dump($resource, (int)$resource);
2、如果string為空字符串,或者沒(méi)有已數(shù)字開(kāi)頭,string可以轉(zhuǎn)化為integer 0;
3、其他情況下 string將會(huì)轉(zhuǎn)化為float類型;
resources轉(zhuǎn)換為integer:
1、將resources類型的值轉(zhuǎn)換為integer,會(huì)將resource對(duì)應(yīng)的id
例如:
的結(jié)果
resource(3) of type (stream) int(3)
null轉(zhuǎn)換為integer:
1、null轉(zhuǎn)換為integer總是0
未定義的變量轉(zhuǎn)化為integer:
1、未定義的變量轉(zhuǎn)換為integer會(huì)產(chǎn)生一個(gè)notice信息,并轉(zhuǎn)換為0
用八進(jìn)制表示的時(shí)候,數(shù)字需要已0(零)開(kāi)頭;
用十六進(jìn)制表示的時(shí)候,數(shù)字需要已0x(零x)或者0X(零大寫(xiě)X)開(kāi)頭;
integer 溢出: integer溢出的時(shí)候,會(huì)自動(dòng)的轉(zhuǎn)化為float類型。同樣的,如果integer類型的操作結(jié)果溢出了integer類型的邊界,也會(huì)自動(dòng)轉(zhuǎn)化為float類型。
需要注意的一點(diǎn)就是,integer類型沒(méi)有"/" (除法)操作,如果需要獲得一個(gè)整型可以使用round等函數(shù),或者直接使用(int)或(integer)進(jìn)行強(qiáng)制類型轉(zhuǎn)化為integer也行.
轉(zhuǎn)換為integer:
boolean 轉(zhuǎn)化為integer:
1、true 總是轉(zhuǎn)換為 1;
2、false總是轉(zhuǎn)換為 0;
float轉(zhuǎn)化為integer:
1、如果float類型值沒(méi)有超過(guò)integer的邊界值,那么轉(zhuǎn)換的時(shí)候會(huì)直接將小數(shù)部分直接截掉。
2、如果float類型值超過(guò)了integer的邊界值,那么轉(zhuǎn)換的結(jié)果是沒(méi)定義的,但幾乎肯定不是預(yù)期的結(jié)果。
array類型轉(zhuǎn)換為integer:
1、空array總是轉(zhuǎn)化為0;
2、非空array總是轉(zhuǎn)化為1;
object轉(zhuǎn)換為integer:
1、把object類型的值轉(zhuǎn)換為integer 會(huì)產(chǎn)生類似 Object of class stdClass could not be converted to int 的Notice 信息。轉(zhuǎn)換的結(jié)果為1;
string轉(zhuǎn)化為integer:
1、如果string以數(shù)字開(kāi)頭并且,其中不包含字符‘.','e','E',并且數(shù)字的值在integer范圍之內(nèi),string將轉(zhuǎn)化為integer。
復(fù)制代碼 代碼如下:
$resource = fopen('d:/tmp/test.txt', 'rb');
var_dump($resource, (int)$resource);
2、如果string為空字符串,或者沒(méi)有已數(shù)字開(kāi)頭,string可以轉(zhuǎn)化為integer 0;
3、其他情況下 string將會(huì)轉(zhuǎn)化為float類型;
resources轉(zhuǎn)換為integer:
1、將resources類型的值轉(zhuǎn)換為integer,會(huì)將resource對(duì)應(yīng)的id
例如:
的結(jié)果
復(fù)制代碼 代碼如下:
resource(3) of type (stream) int(3)
null轉(zhuǎn)換為integer:
1、null轉(zhuǎn)換為integer總是0
未定義的變量轉(zhuǎn)化為integer:
1、未定義的變量轉(zhuǎn)換為integer會(huì)產(chǎn)生一個(gè)notice信息,并轉(zhuǎn)換為0
相關(guān)文章
php中如何使對(duì)象可以像數(shù)組一樣進(jìn)行foreach循環(huán)
php中如何使對(duì)象可以像數(shù)組一樣進(jìn)行foreach循環(huán)呢?下面小編就詳細(xì)的為大家介紹一下吧!需要的朋友可以 過(guò)來(lái)參考下2013-08-08
關(guān)于查看MSSQL 數(shù)據(jù)庫(kù) 用戶每個(gè)表 占用的空間大小
本篇文章是對(duì)查看MSSQL數(shù)據(jù)庫(kù)用戶每個(gè)表占用的空間大小進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
PHPer 需要了解的 5 個(gè) Composer 小技巧
本文介紹使用Composer的五個(gè)小技巧,希望能給你的PHP開(kāi)發(fā)帶來(lái)方便。2014-08-08
無(wú)法載入 mcrypt 擴(kuò)展,請(qǐng)檢查 PHP 配置終極解決方案
今天運(yùn)行phpmyadmin的時(shí)候,提示無(wú)法載入 mcrypt 擴(kuò)展,經(jīng)排查原來(lái)是php配置問(wèn)題。2011-07-07
『PHP』PHP截?cái)嗪瘮?shù)mb_substr()使用介紹
截?cái)辔恼聵?biāo)題,控制在15個(gè)文字,接下來(lái)為大家講解下如何實(shí)現(xiàn)這個(gè)需求,感興趣的朋友可以參考下哈2013-04-04
PHP中你應(yīng)該知道的require()文件包含的正確用法
這篇文章主要介紹了PHP中你應(yīng)該知道的require()文件包含的正確用法,需要的朋友可以參考下2015-06-06

