CASE # 1:
Mam następujący kod, który generuje odpowiednią liczbęcałkowita emisja Rodzaj obsady
<?php
$integer = 10000000000;
$array = array($integer);
print_r($array[0]); //output = 1000000000
?>
CASE # 2:
Ale kiedy jawnie wpisać rzucić tę samą liczbę do liczby całkowitej daje różne wyniki
<?php
$integer = (int)10000000000;
$array = array($integer);
print_r($array[0]); //output = 1410065408
?>
CASE # 3:
Jeśli Liczbę pomniejszam o jeden 0 i wpisz ją, następnie zwraca poprawną liczbę
<?php
$integer = (int)1000000000;
$array = array($integer);
print_r($array[0]); //output = 1000000000
?>
Dlaczego nie produkuje poprawnego wyjścia w CASE # 2
?
Wygląda na to, że przekroczył limit dla typu Integer. Maksymalna wartość liczby całkowitej to 2147483647. Przeczytaj ją tutaj: http://php.net/manual/en/language.types.integer.php – SamHuckaby
Tak, przekroczyłeś limit dla typu Integer, więc konwertuje na maksymalną znaną liczbę całkowitą. – MurifoX
Należy zauważyć, że pierwszy przypadek "działa", ponieważ PHP automatycznie konwertuje go na ciąg znaków (lub jakiś typ, który może obsłużyć liczbę). – SamHuckaby