PHP фактически имеет предопределенную константу для «бесконечности»: INF
. Это не true бесконечность, но по сути это наибольшее возможное значение с плавающей запятой. В 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)
Обратите внимание, что любое число со значением, превышающим максимальное значение с плавающей запятой, будет приведено к INF
. Поэтому, если мы сделаем, var_dump($inf === 1e50000);
, это также выдаст true
, даже если максимальное значение с плавающей запятой меньше, чем это.