我遇到了这段代码的问题:
if (!empty($_GET[ "lic" ])) $lic = $_GET[ "lic" ]; else $e = true;
echo ($lic % 11);
当我发布8911076856
时,它会回显1
,但它应该是0
。
答案 0 :(得分:9)
值“8911076856”可能高于系统的最大整数值。
echo ((int)8911076856);
我的32位系统上的结果是321142264。
答案 1 :(得分:5)
使用fmod:
echo fmod(8911076856, 11);
答案 2 :(得分:2)
这很可能是因为您发布的号码高于PHP_INT_MAX
,在大多数64位系统AFAIK上都是9223372036854775807。如果你使用的是32位系统(我希望你是这样),它可能是2147483647。
答案 3 :(得分:-2)
你试过这个:
if(!empty($ _ GET [“lic”]))$ lic = intval ($ _ GET [“lic”]); else $ e = true;
echo($ lic%11);