返回浮点而不是整数
问题描述:
/* 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
我怎样才能解决这个问题?
答
可能在32位服务器上。
获得财产id_str
而不是id
这将始终是一个字符串。
答
整数的大小取决于平台。您应该使用字符串而不是数字来操作该数据。
答
您需要使用id_str而不是id。 32位PHP(这是大多数人已安装的)不能处理大于32位的整数。
+0
从技术上讲,32位PHP不能处理大于32位的整数。 64位PHP可以。 – 2012-04-13 21:10:31
将其转换为字符串。 – j08691 2012-04-13 21:02:20
这里是我的猜测:http://stackoverflow.com/questions/94591/what-is-the-maximum-value-for-a-int32 – Madbreaks 2012-04-13 21:02:28
@ j08691,有什么建议吗? – Eray 2012-04-13 21:02:57