3

このコードで問題が発生しました:

if (!empty($_GET[ "lic" ])) $lic = $_GET[ "lic" ]; else $e = true;
echo ($lic % 11);

投稿8911076856するとエコーします1が、そうあるべきです0

4

4 に答える 4

9

値「8911076856」は、おそらくシステムの最大整数値を上回っています。

echo ((int)8911076856);

私の結果は、32ビットシステムで321142264です。

于 2012-08-22T14:05:20.500 に答える
7

fmodを使用します:

echo fmod(8911076856, 11);
于 2012-08-22T14:06:35.367 に答える
2

PHP_INT_MAXこれは、投稿している数が、ほとんどの64ビットシステムAFAIKで9223372036854775807であるよりも大きいことが原因である可能性があります。32ビットシステムを使用している場合(私はあなたがそうだと思います)、おそらく2147483647です。

于 2012-08-22T14:06:15.593 に答える
-2

これを試しましたか:

if(!empty($ _ GET ["lic"]))$ lic = intval($ _GET ["lic"]); それ以外の場合、$ e = true;

エコー($ lic%11);

于 2012-08-22T14:12:50.473 に答える