Pergunta

Eu preciso para simular um 8 em PHP.

Assim que min(∞,$number) é sempre $number.

Nenhuma solução correta

Outras dicas

Suponho que, para inteiros, você poderia usar PHP_INT_MAX , o seguinte código:

var_dump(PHP_INT_MAX);

Dá essa saída, na minha máquina:

int 2147483647


Mas você tem que ter cuidado; consulte integer overflow ( citando) :

Se o PHP encontra um número além do limites do tipo inteiro, ele vai ser interpretado como um ponto flutuante. Além disso, uma operação que resulta numa número além dos limites do tipo inteiro retornará um flutuador em seu lugar.

E, a partir do href="http://php.net/manual/en/language.types.float.php" rel="noreferrer"> página de documentação :

O tamanho de um flutuador é , Sendo o máximo depende da plataforma de ~ 1.8e308 com uma precisão de cerca de 14 dígitos decimais é comum valor (a 64 bit IEEE formato).

Considerando o excesso de número inteiro, e dependendo do seu caso, usando este tipo de valor pode ser a melhor (?) Solução ...

Você poderia usar a constante PHP_INT_MAX (clique para PHP docs manuais) .

No entanto, você pode querer pensar se você realmente necessidade para usá-lo -. Parece um pouco de um pedido estranho

PHP tem realmente uma constante predefinida para "infinito": INF. Este não é true infinito, mas é essencialmente o maior valor float possível. Em sistemas de 64 bits, o maior float é aproximadamente igual a 1.8e308, então isso é considerado igual ao 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)

Note, qualquer número com um valor maior do que o valor máximo de flutuação serão lançados para INF. Assim, portanto, se o fizermos, var_dump($inf === 1e50000);, este também irá true saída mesmo que o máximo float é menos do que isso.

suponho, assumindo que este é um inteiro, você poderia usar PHP_INT_MAX constante.

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

Em Perl você pode usar

$INF = 9**9E9;

que é maior do que qualquer valor que você pode armazenar em números IEEE ponto flutuante. E isso realmente funciona como pretendido: qualquer número não-infinito será menor do que $INF:

$N < $INF

é verdadeiro para qualquer número $N "normal".

Talvez você usá-lo em PHP também?

min($number,$number) é sempre $number (também verdadeiro para max() é claro).

Se a sua única preocupação é função de comparação, então sim, você pode usar array (), será sempre maior, então qualquer número

como

echo min(array(), 9999999999999999);

ou

if (array() > 9999999999999999) {
  echo 'array won';
} else {
  echo 'number won';
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top