CASE # 1:
我有以下的代碼,其輸出正確的數字整數類型轉換問題
<?php
$integer = 10000000000;
$array = array($integer);
print_r($array[0]); //output = 1000000000
?>
CASE # 2:
但是,當我明確地類型轉換相同數量的整數它給不同的輸出
<?php
$integer = (int)10000000000;
$array = array($integer);
print_r($array[0]); //output = 1410065408
?>
CASE # 3:
如果我把這個數字減一個0然後輸入它,然後返回正確的數字
<?php
$integer = (int)1000000000;
$array = array($integer);
print_r($array[0]); //output = 1000000000
?>
爲什麼它不會在CASE # 2
中產生正確的輸出?
看起來你已經超出了整數類型的限制。一個整數的最大值是2147483647.在這裏閱讀它:http://php.net/manual/en/language.types.integer.php – SamHuckaby
是的,你已經超過了Integer類型的限制,所以它轉換爲已知的最大整數。 – MurifoX
需要注意的是,第一種情況「起作用」是因爲PHP將它自動轉換爲一個字符串(或者可以處理該數字的某種類型)。 – SamHuckaby