Пожалуйста, рассмотрите этот фрагмент (относится к Как 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.
Я не смог найти ошибку для gmp_mod
на PHP Bugtracker .Но на странице справочника 1020 * также нет ничего, намекающего на различные возможные результаты.И я не понимаю, почему он должен давать разные результаты.
Пожалуйста, запустите приведенный выше фрагмент кода и опубликуйте вывод вместе с используемой вами операционной системой и архитектурой ЦП, чтобы я мог подтвердить, что этоне только моя машина работает.
Кроме того, если вы знаете, является ли это известной проблемой или даже ожидаемым поведением, пожалуйста, укажите мне ссылку в трекере ошибок.В противном случае я открою ошибку с собранными результатами.
Спасибо!
PS Пожалуйста, дайте мне знать, если я должен запросить CW для этого.В противном случае я поставлю ссылку на багтрекер в качестве ответа (если кто-то не придет с убедительным объяснением).