integer 可以已10進制,8進制,16進制表示。
用八進制表示的時候,數字需要已0(零)開頭;
用十六進制表示的時候,數字需要已0x(零x)或者0X(零大寫X)開頭;
integer 溢出: integer溢出的時候,會自動的轉化為float類型。同樣的,如果integer類型的操作結果溢出了integer類型的邊界,也會自動轉化為float類型。
需要注意的一點就是,integer類型沒有"/" (除法)操作,如果需要獲得一個整型可以使用round等函數,或者直接使用(int)或(integer)進行強制類型轉化為integer也行.
轉換為integer:
boolean 轉化為integer:
1、true 總是轉換為 1;
2、false總是轉換為 0;
float轉化為integer:
1、如果float類型值沒有超過integer的邊界值,那麼轉換的時候會直接將小數部分直接截掉。
2、如果float類型值超過了integer的邊界值,那麼轉換的結果是沒定義的,但幾乎肯定不是預期的結果。
array類型轉換為integer:
1、空array總是轉化為0;
2、非空array總是轉化為1;
object轉換為integer:
1、把object類型的值轉換為integer 會產生類似 Object of class stdClass could not be converted to int 的Notice 信息。轉換的結果為1;
string轉化為integer:
1、如果string以數字開頭並且,其中不包含字符‘.','e','E',並且數字的值在integer范圍之內,string將轉化為integer。
$resource = fopen('d:/tmp/test.txt', 'rb');
var_dump($resource, (int)$resource);
2、如果string為空字符串,或者沒有已數字開頭,string可以轉化為integer 0;
3、其他情況下 string將會轉化為float類型;
resources轉換為integer:
1、將resources類型的值轉換為integer,會將resource對應的id
例如:
的結果
resource(3) of type (stream) int(3)
null轉換為integer:
1、null轉換為integer總是0
未定義的變量轉化為integer:
1、未定義的變量轉換為integer會產生一個notice信息,並轉換為0