返回浮点而不是整数

时间:2012-04-13 21:00:31

标签: php floating-point integer

/* returns tweetDetails */
function returnTweets()
{
    $return = array();
    $url = $hashtagSearchUrl = "http://search.twitter.com/search.json?q=%23gencsengeleceksin&include_entities=1&result_type=recent&rpp=50";
    foreach(json_decode(file_get_contents($url))->results as $t)
    {
        $return[] = $t;
    }

    return $return;
}

/* assigns tweet details to a variable */
$ts = returnTweets();

foreach ($ts as $t)
    echo $t->id."<br />";

这必须输出推文ID的列表。例如:

190914827918857531
190914827918845655
165456467265456156

一般情况下它正在运行,但在某些服务器时,它会返回类似这样的内容:

1.9090219393785E+17

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:3)

您需要使用id_str而不是id。 32位PHP(这是大多数人已安装的)无法处理大于32位的整数。

https://dev.twitter.com/docs/twitter-ids-json-and-snowflake

答案 1 :(得分:2)

可能在32位服务器上。

获取属性id_str而不是id,它始终是一个字符串。

答案 2 :(得分:1)

整数的大小取决于平台。你应该使用字符串而不是数字来操纵那些数据。