为什么 gmp_mod 在不同平台上产生不同的结果?
请考虑这个片段(与How is 13 % 64= -13)
if(extension_loaded('GMP')) {
printf("
PHP Version: %s
gmp_strval(gmp_mod('-13', '64')) = %s
gmp_strval(gmp_mod(-13, 64)) = %s
gmp_mod(-13, 64) = %s
",
phpversion(),
gmp_strval(gmp_mod('-13', '64')),
gmp_strval(gmp_mod(-13, 64)),
gmp_mod(-13, 64)
);
}
在我的 Win7、x64 上,这会产生
PHP Version: 5.3.3
gmp_strval(gmp_mod('-13', '64')) = 51
gmp_strval(gmp_mod(-13, 64)) = -51
gmp_mod(-13, 64) = -51
奇怪的结果,因为在 http://codepad.viper-7.com/gqN5aa 它只产生 51 。
我找不到 < 的错误PHP Bugtracker 上的 code>gmp_mod。但手册页也没有任何暗示不同的内容可能的结果。我不明白为什么它会产生不同的结果。
请运行上面的代码片段并发布输出以及您正在使用的操作系统和 CPU 架构,以便我可以确认这不仅仅是我的机器出现问题。
另外,如果您知道这是否是已知问题甚至预期行为,请指出错误跟踪器中的链接。否则我会用收集的结果打开一个错误。
谢谢!
PS,请告诉我是否应该为此请求 CW。否则我会将 bugtracker 的链接作为答案(除非有人提出令人信服的解释)。
Please consider this snippet (related to How is 13 % 64= -13)
if(extension_loaded('GMP')) {
printf("
PHP Version: %s
gmp_strval(gmp_mod('-13', '64')) = %s
gmp_strval(gmp_mod(-13, 64)) = %s
gmp_mod(-13, 64) = %s
",
phpversion(),
gmp_strval(gmp_mod('-13', '64')),
gmp_strval(gmp_mod(-13, 64)),
gmp_mod(-13, 64)
);
}
On my Win7, x64 this produces
PHP Version: 5.3.3
gmp_strval(gmp_mod('-13', '64')) = 51
gmp_strval(gmp_mod(-13, 64)) = -51
gmp_mod(-13, 64) = -51
which is odd, because on http://codepad.viper-7.com/gqN5aa it produces just 51 .
I could not find a bug for gmp_mod
on the PHP Bugtracker. But there is also nothing at the manual page hinting at different possible outcomes. And I don't see why it should produce different results.
Please run the above code snippet and post the output along with which Operating System and CPU Architecture you are using, so I can confirm it is not just my machine acting up.
Also, if you know whether this a known issue or even expected behavior, please point me to a link in the bugtracker. Otherwise I will open a bug with the collected results.
Thanks!
P.S. please let me know if I should request CW for this. Otherwise I will put the link to the bugtracker as the answer (unless someone comes up with a compelling explanation).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是扩展本身的错误。几周前,当我遇到同样的问题时,我偶然发现了此错误报告,并得出结论,这实际上是扩展中的一个错误。我已经尝试使用最新的快照,效果很好。
It's a bug in the extension itself. I stumbled upon this bug report when I had the same issue a few weeks ago, and concluded it was in fact a bug in the extension. I have tried with the latest snapshot, and it works fine.