Pregunta

necesito para simular una ∞ en PHP.

Para que se min(∞,$number) siempre $number.

No hay solución correcta

Otros consejos

supongo que, para los números enteros, se puede usar PHP_INT_MAX , el código siguiente:

var_dump(PHP_INT_MAX);

Da a esta salida, en mi máquina:

int 2147483647


Pero tienes que tener cuidado ; ver Desbordamiento de enteros ( citando a)

  

Si PHP se encuentra con un número más allá de la   límites de tipo entero, lo hará   interpretarse como un flotador en su lugar.   Además, una operación que resulta en una   número más allá de los límites de la   tipo entero devolverá un flotador   en su lugar.

Y, desde el números de punto flotante página de documentación:

  

El tamaño de un flotador es   dependiente de la plataforma, aunque un máximo   de ~ 1.8e308 con una precisión de   aproximadamente 14 dígitos decimales es un común   valor (el 64 bit formato IEEE).

Teniendo en cuenta el desbordamiento de entero, y dependiendo de su caso, el uso de este tipo de valor podría ser una solución mejor (?) ...

Se podría usar potencialmente la PHP_INT_MAX constante (clic para PHP documentos manuales) .

Sin embargo, es posible que desee pensar en si realmente necesidad para usarlo -. Parece como un poco de una extraña petición

PHP en realidad tiene una constante predefinida para "infinito": INF. Esto no es true infinito, pero es esencialmente el valor flotante más grande posible. En los sistemas de 64 bits, la más grande de flotación es más o menos igual a 1.8e308, por lo que este se considera que es igual a infinito.

$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)

Tenga en cuenta, cualquier número con un valor mayor que el valor máximo de flotación será echado a INF. Así, por lo tanto si lo hacemos, var_dump($inf === 1e50000);, esto también emite true a pesar de que el flotador máxima es inferior a este.

supongo, suponiendo que esto es un entero, podría utilizar PHP_INT_MAX constante.

min (número $, $ número + 1) ??

En Perl puede utilizar

$INF = 9**9E9;

que es mayor que cualquier valor que puede almacenar en los números de punto flotante IEEE. Y que realmente funciona según lo previsto: cualquier número infinito no será menor que $INF:

$N < $INF

es cierto para cualquier número $N "normal".

Tal vez se utiliza en PHP también?

min($number,$number) es siempre $number (también cierto para max() por supuesto).

Si su única preocupación es función de comparación, entonces sí, se puede utilizar array (), será siempre más grande que cualquier número

como

echo min(array(), 9999999999999999);

o

if (array() > 9999999999999999) {
  echo 'array won';
} else {
  echo 'number won';
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top