PHP - 将字符串转换为bigint

时间:2012-01-23 15:23:44

标签: php

我有以下字符串,我需要将其转换为整数或bigint。

$test="99999977706";

我试过了:

echo (int)$test;
echo (integer)$test;
echo intval($test);

但是他们都归我2147483647。

如何将上述字符串转换为数字或bigint?

非常感谢所有建议。

6 个答案:

答案 0 :(得分:2)

MySQL不会知道其中的区别。只需将字符串提供给您的查询,就好像它是一个数字,而不是先在PHP中输入它。

例如:

$SQL = "SELECT * FROM table WHERE id = $test";

答案 1 :(得分:1)

工作解决方案:

<?php
   $str = "99999977706";
   $bigInt = gmp_init($str);
   $bigIntVal = gmp_intval($bigInt);
   echo $bigIntVal;
   ?>

它将返回:99999977706

答案 2 :(得分:0)

在你的代码片段中,$ test已经是一个数字,更具体地说是一个浮点数。当您将$ test的内容用作数字或字符串时,PHP会将$ test的内容转换为正确的类型,因为该语言的类型是松散的。

答案 3 :(得分:0)

它可以帮到你,

$token=  sprintf("%.0f",$appdata['access_token'] );

您可以参考此link

答案 4 :(得分:0)

对于任意长度的整数,使用GMP

答案 5 :(得分:0)

您可以将字符串视为字符串而不进行转换。

只需使用正则表达式只留下数字:

$test = "99999977706";
$test = preg_replace('/[^0-9]/', '', $test);