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