Есть ли что-то большее, чем любые числа в PHP?

Мне нужно смоделировать ∞ в PHP.

Так что min(∞,$number) всегда $number .

Я полагаю, что для целых чисел вы могли бы использовать PHP_INT_MAX , следующий код:

 var_dump(PHP_INT_MAX); 

Дает этот вывод на моей машине:

 int 2147483647 

Но вы должны быть осторожны; см. Переполнение целых чисел (цитирование) :

Если PHP встречает число за пределами целочисленного типа, оно будет интерпретироваться как float. Кроме того, операция, которая приводит к числу за пределами целочисленного типа, вместо этого возвращает float.

И, с страницы документации чисел с плавающей запятой :

Размер поплавка зависит от платформы, хотя максимум ~ 1.8e308 с точностью до 14 десятичных цифр является общим значением (64-битный формат IEEE).

Учитывая целочисленное переполнение и, в зависимости от вашего случая, использование такого значения может быть лучшим (?) Решением …

Используйте константу PHP_INT_MAX .

http://php.net/manual/en/language.types.integer.php

Вы могли бы использовать константу PHP_INT_MAX (щелкните для ручных документов PHP) .

Однако вы можете подумать о том, действительно ли вам нужно использовать его – это похоже на нечетный запрос.

PHP на самом деле имеет предопределенную константу для «бесконечности»: INF . Это не истинная бесконечность, но по существу самая большая плавающая величина. В 64-битных системах наибольший поплавок примерно равен 1.8e308 , поэтому считается, что он равен бесконечности.

 $inf = INF; var_dump(min($inf,PHP_INT_MAX)); // outputs int(9223372036854775807) var_dump(min($inf,1.79e308)); // outputs float(1.79E+308) var_dump(min($inf,1.799e308)); // outputs float(INF) var_dump(min($inf,1.8e308)); // outputs float(INF) var_dump($inf === 1.8e308); // outputs bool(true) 

Обратите внимание, что любое число со значением, большим, чем максимальное значение float, будет передано INF . Поэтому, если мы это сделаем, var_dump($inf === 1e50000); , это также выдаст значение, даже если максимальный поплавок меньше этого.

Я предполагаю, что если это целое число, вы можете использовать константу PHP_INT_MAX.

min ($ number, $ number + 1)?

В Perl вы можете использовать

 $INF = 9**9E9; 

который больше любого значения, которое вы можете сохранить в номерах с плавающей запятой IEEE. И это действительно работает по назначению: любое не бесконечное число будет меньше, чем $INF :

 $N < $INF 

верно для любого «нормального» числа $N

Может быть, вы тоже используете его в PHP?

min($number,$number) всегда $number (также верно для max() конечно).

Если ваша единственная проблема – это функция сравнения, тогда да, вы можете использовать array (), она будет всегда больше, чем любое число

как

 echo min(array(), 9999999999999999); 

или

 if (array() > 9999999999999999) { echo 'array won'; } else { echo 'number won'; }