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(零)開頭;
用十六進(jìn)制表示的時(shí)候,數(shù)字需要已0x(零x)或者0X(零大寫X)開頭;
integer 溢出: integer溢出的時(shí)候,會(huì)自動(dòng)的轉(zhuǎn)化為float類型。同樣的,如果integer類型的操作結(jié)果溢出了integer類型的邊界,也會(huì)自動(dòng)轉(zhuǎn)化為float類型。
需要注意的一點(diǎn)就是,integer類型沒有"/" (除法)操作,如果需要獲得一個(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類型值沒有超過integer的邊界值,那么轉(zhuǎn)換的時(shí)候會(huì)直接將小數(shù)部分直接截掉。
2、如果float類型值超過了integer的邊界值,那么轉(zhuǎn)換的結(jié)果是沒定義的,但幾乎肯定不是預(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ù)字開頭并且,其中不包含字符‘.','e','E',并且數(shù)字的值在integer范圍之內(nèi),string將轉(zhuǎn)化為integer。
$resource = fopen('d:/tmp/test.txt', 'rb');
var_dump($resource, (int)$resource);
2、如果string為空字符串,或者沒有已數(shù)字開頭,string可以轉(zhuǎn)化為integer 0;
3、其他情況下 string將會(huì)轉(zhuǎn)化為float類型;
resources轉(zhuǎn)換為integer:
1、將resources類型的值轉(zhuǎn)換為integer,會(huì)將resource對應(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(零)開頭;
用十六進(jìn)制表示的時(shí)候,數(shù)字需要已0x(零x)或者0X(零大寫X)開頭;
integer 溢出: integer溢出的時(shí)候,會(huì)自動(dòng)的轉(zhuǎn)化為float類型。同樣的,如果integer類型的操作結(jié)果溢出了integer類型的邊界,也會(huì)自動(dòng)轉(zhuǎn)化為float類型。
需要注意的一點(diǎn)就是,integer類型沒有"/" (除法)操作,如果需要獲得一個(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類型值沒有超過integer的邊界值,那么轉(zhuǎn)換的時(shí)候會(huì)直接將小數(shù)部分直接截掉。
2、如果float類型值超過了integer的邊界值,那么轉(zhuǎn)換的結(jié)果是沒定義的,但幾乎肯定不是預(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ù)字開頭并且,其中不包含字符‘.','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為空字符串,或者沒有已數(shù)字開頭,string可以轉(zhuǎn)化為integer 0;
3、其他情況下 string將會(huì)轉(zhuǎn)化為float類型;
resources轉(zhuǎn)換為integer:
1、將resources類型的值轉(zhuǎn)換為integer,會(huì)將resource對應(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)文章
檢查url鏈接是否已經(jīng)有參數(shù)的php代碼 添加 ? 或 &
有時(shí)候我們需要檢查 URL 鏈接是否已經(jīng)有參數(shù),然后根據(jù)需要判斷是添加 ? 還是添加 & 在結(jié)尾,這只是一個(gè)很小的技巧,但是在做分頁或者頁面跳轉(zhuǎn)時(shí)還是有些用處的。2010-02-02學(xué)習(xí)php開源項(xiàng)目的源碼指南
這篇文章主要介紹了學(xué)習(xí)php開源項(xiàng)目的源碼指南,需要的朋友可以參考下2014-12-12PHP字符串word末字符實(shí)現(xiàn)大小寫互換的方法
這篇文章主要介紹了PHP字符串word末字符實(shí)現(xiàn)大小寫互換的方法,是涉及PHP字符串轉(zhuǎn)換非常實(shí)用的技巧,需要的朋友可以參考下2014-11-11php版微信公眾號(hào)接口實(shí)現(xiàn)發(fā)紅包的方法
這篇文章主要介紹了php版微信公眾號(hào)接口實(shí)現(xiàn)發(fā)紅包的方法,結(jié)合實(shí)例形式分析了php版微信公眾號(hào)實(shí)現(xiàn)發(fā)紅包的接口調(diào)用方法與相關(guān)使用注意事項(xiàng),需要的朋友可以參考下2016-10-10php設(shè)計(jì)模式之裝飾模式應(yīng)用案例詳解
這篇文章主要介紹了php設(shè)計(jì)模式之裝飾模式,結(jié)合具體應(yīng)用案例形式詳細(xì)分析了php裝飾模式的概念、原理、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-06-06PHP 文件編程綜合案例-文件上傳的實(shí)現(xiàn)
本篇文章是對PHP中文件上傳的實(shí)現(xiàn)代碼進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-07-07php實(shí)現(xiàn)的RSS生成類實(shí)例
這篇文章主要介紹了php實(shí)現(xiàn)的RSS生成類,實(shí)例分析了RSS生成類的原理、定義與使用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04