質問

私は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する

INF

PHPは、実際には「無限大」の定義済みの定数を有します。これは、の真の無限大ではありませんが、基本的に可能な最大の浮動小数点値です。 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

私が思う、これは整数であると仮定すると、あなたはPHP_INT_MAX定数を使用することができます。

分($番号、$番号+ 1)^

Perlでは、使用することができます。

$INF = 9**9E9;

これはあなたがIEEE浮動小数点数に格納できる任意の値よりも大きくなっています。そして、それは本当に意図したとおりに動作します:任意の非無限の数は少なくなります$INFよります:

$N < $INF

任意の "正常な" 数の$Nに当てはまります。

たぶん、あまりにもPHPでそれを使用する?

min($number,$number)は常に(もちろん$numberについても同様)max()です。

あなたの唯一の懸念は比較関数である場合は、

[はい、あなたは、配列を(使用することができます)、それは任意の数の

、常に大きくなります

のように

echo min(array(), 9999999999999999);

または

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