检查强制转换为int是否会丢失数据-PHP

检查强制转换为int是否会丢失数据-PHP,php,casting,biginteger,Php,Casting,Biginteger,我有一段代码: $result = new stdClass(); foreach ($array as $index => $value) { if(is_numeric($value)){ $int = (int)$value; $double = (double)$value; if($int == $double) $value = $int; else $val

我有一段代码:

$result = new stdClass();
foreach ($array as $index => $value) {
    if(is_numeric($value)){
        $int = (int)$value;
        $double = (double)$value;
        if($int == $double)
            $value = $int;
        else
            $value = $double;
    }
    $index = strtolower($index);
    $result->$index = $value;
}
而且它工作了很长时间。现在我有问题了。我的数据库中有一个列,其中有很多数字。但它们不是数字,它们是varchar,这些数字不是用于数学目的的。不幸的是,由于该列只完全填充了数字,它通过了is_数字测试,但由于它是一个巨大的数字,我认为由于内存限制,它会丢失40亿的数据。 无论如何,如何检查在强制转换后是否丢失了变量的数据?
谢谢。

将其转换回,看看它是否给出与源相同的值。

将其转换回,看看它是否给出与源相同的值

if($value<=PHP_INT_MAX) ... // safe to convert
else // not safe