字符串数到整数不工作的PHP

Has*_*Ila 3 php string integer msisdn

我试图得到一个整数的字符串数字,但它没有按预期工作这里有问题的代码:

$usage['msisdn'] = "46720000000";
$usage['msisdn'] = (int)$usage['msisdn'];

echo $usage['msisdn'];
Run Code Online (Sandbox Code Playgroud)

它将2147483647作为整数回显,但我希望得到46720000000作为整数.
怎么了?

顺便说一句,我正在使用json_encode()解析数据;


更新: 没关系我已经使用intval()

Mat*_*hai 7

那是因为最大值int322,147,483,647.您的电话号码超过此值.

您可以使用以下命令在服务器上找到int的最大值:

echo PHP_INT_MAX;
Run Code Online (Sandbox Code Playgroud)

我认为将电话号码存储为整数是一种不好的做法,以后可能会对您产生影响.为什么?因为电话号码可以从以下开始:

  • 国际直拨电话:00+
  • NDD:0

此外,您可能希望在某些时候格式化电话号码,将其存储为字符串使这部分更容易.

圣诞节奖金:) libphonenumber-for-php