CASE # 1:
I持って正しい番号整数型キャストの問題
<?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:
の場合数字を1つ小さくしてキャストしたら、正しい数字を返します。
<?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