2

私はphpの初心者で、最近、intval()「変換に指定されたベースを使用して、varの整数値を返す」関数を見ました。

http://php.net/manual/en/function.intval.phpから公式マニュアルを参照したところ、次のような例がありました

echo intval(42);                      // 42  
echo intval(4.2);                     // 4  
echo intval('42');                    // 42  
echo intval('+42');                   // 42  
echo intval('-42');                   // -42  
echo intval(042);                     // 34  
echo intval('042');                   // 42  
echo intval(1e10);                    // 1410065408  
echo intval('1e10');                  // 1  
echo intval(0x1A);                    // 26  
echo intval(42000000);                // 42000000  
echo intval(420000000000000000000);   // 0  
echo intval('420000000000000000000'); // 2147483647  
echo intval(42, 8);                   // 42  
echo intval('42', 8);                 // 34  
echo intval(array());                 // 0  
echo intval(array('foo', 'bar'));     // 1  

の答えはどのようecho intval(1e10);にして 141006540​​8 になったのですか?

4

1 に答える 1

2

この回答はそれを説明しています: https://stackoverflow.com/a/13720856/2827152

1e10 は格納できる最大整数値を超え、オーバーフローが発生します。

于 2013-10-07T15:57:56.093 に答える