首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP中资源ID的最大值是多少?

PHP中资源ID的最大值是多少?
EN

Stack Overflow用户
提问于 2014-02-04 23:48:35
回答 1查看 439关注 0票数 1

我有一个经常运行的PHP脚本(或者至少应该运行)。这是一个简单的程序,循环遍历数字并测试它们的质数。不幸的是,这个脚本大约每隔12个小时就会崩溃一次,错误如下:

代码语言:javascript
复制
"PHP Warning:  gmp_strval(): -2147483648 is not a valid GMP integer resource"

我猜我在将这个资源赋值给一个变量时超过了资源ID的最大值,当脚本试图对该变量运行函数时,它就会崩溃。

那么,最大资源ID是多少?更重要的是,我如何避免这个问题?

代码有点长,但我会试着给你大意:

代码语言:javascript
复制
$NumberToTest = gmp_init("$StartingString",10);
/* Time to test for primality */
while(1)
{
// Test $NumberToTest for primality.
$NumberToTest = gmp_add($NumberToTest,2);
}
EN

回答 1

Stack Overflow用户

发布于 2014-04-14 07:31:59

PHP不会在内部重用资源ID,因此最终会在PHP使用完它们时遇到问题,从而导致出现警告。请参阅bug report。由于PHP中的一堆东西将注册资源,从而递增资源ID,因此在长时间运行的脚本中很容易遇到此错误。

最大ID取决于您的架构。您可以打印常量PHP_INT_MAX来获取安装编号,但在32位系统上,它通常是2,147,483,647。这在64位系统上要高得多。我的打印输出9,223,372,036,854,775,807。您不太可能在64位系统上耗尽资源ID限制。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21556963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档