Индекс цикла перепечатывается для больших чисел - PullRequest
2 голосов
/ 26 сентября 2019

Рассмотрим этот фрагмент кода

$from = 486745904951485151;
$to = 486745904951485157;
$val = 486745904951485155;
for($i=$from; $i<=$to;$i++) {
   if($i == $val) {
       return true;
   }
}

Мне нужно сделать всего 8 итераций, но поскольку $i не равно 486745904951485151, а скорее оно перепечатано, чтобы плавать так, $i=4.8674590495149E+17 что яВ итоге получается бесконечный (-ish) цикл, потому что условие итерации никогда не достигает конца цикла, потому что $ to по-прежнему целочисленный.

Я предполагаю, что это некоторое внутреннее ограничение для итерации php (Документы не помогли), что является лучшим возможным решением для решения этой проблемы?Я думал о распределении всех значений в 10 раз, поэтому я искусственно уменьшил фактическое число, но мне было интересно, если у кого-то есть идея лучше решить эту проблему?

Дополнительная информация: да, я использую32-битный PHP и версия 5.6.3 (устаревшее приложение)

...