2010-12-10 14 views
1

が、これはhttp://codepad.viper-7.com/gqN5aaにそれだけで51を生成するので、奇数であるgmp_modは異なるプラットフォームで異なる結果を生成するのはなぜですか?

PHP Version: 5.3.3 
gmp_strval(gmp_mod('-13', '64')) = 51 
gmp_strval(gmp_mod(-13, 64)) = -51 
gmp_mod(-13, 64) = -51 

を生成x64の、このスニペットHow is 13 % 64= -13に関連した)私のwin7の上

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) 
    ); 
} 

をご検討ください。

I could not find a bug for gmp_mod on the PHP Bugtracker。しかし、manual pageには、異なる可能性のあるアウトカムを示唆するものもありません。なぜ私はそれが異なった結果を生み出すべきかわかりません。

上記のコードスニペットを実行して、使用しているオペレーティングシステムとCPUアーキテクチャと一緒に出力を投稿してください。私のマシンが動作しているのではないことが確認できます。

また、これが既知の問題か予想される動作かどうかが分かっている場合は、bugtrackerのリンク先を教えてください。さもなければ、私は収集された結果にバグをオープンします。

ありがとうございます!

P.S.もし私がCWを要求しなければならないかどうか私に知らせてください。さもなければ、私は答えとしてバグトラッカーにリンクを張ります(誰かが説得力のある説明を出さない限り)。

+1

+1私も泣いた。 CWではなく – mario

答えて

1

これは拡張機能自体のバグです。数週間前に同じ問題が発生したときに私はthis bug reportにつまずくと、実際には拡張機能のバグだと結論づけました。最新のスナップショットを試してみましたが、うまくいきます。

PHP Version: 5.3.5-dev 
gmp_strval(gmp_mod('-13', '64')) = 51 
gmp_strval(gmp_mod(-13, 64)) = 51 
gmp_mod(-13, 64) = 51 
関連する問題