PHP の is_infinite() 関数とは?無限大判定の使い方と実行例を解説
定義と使い方
is_infinite() 関数は、ブール値(true / false)を返す関数です。引数として渡された値が無限大であるかどうかを判定し、無限大であれば TRUE を、そうでなければ FALSE を返します。PHP では、float 型で表現できる許容範囲を超えた数値が「無限」として扱われます。
構文
is_infinite ( float $val ) : bool
パラメータ
| 番号 | パラメータと説明 |
|---|---|
| 1 | val 無限大であるかどうかを検証する対象の値 |
戻り値
PHP の is_infinite() 関数は、引数 val が float 型の許容範囲外である場合に TRUE を返し、範囲内であれば FALSE を返します。なお、NAN(Not a Number)は無限大ではないため、FALSE が返される点に注意してください。
対応する PHP バージョン
この関数は、PHP 4.x、PHP 5.x、および PHP 7.x のすべてのバージョンで利用できます。
使用例 1:通常の数値の場合
次の例では、100 が無限大の数ではないことを確認しています。
<?php
$val = 100;
$ret = is_infinite($val);
if ($ret == TRUE) {
echo $val . " は無限大の数です" . "\n";
} else {
echo $val . " は無限大の数ではありません" . "\n";
}
?>出力結果
上記のコードを実行すると、次のような結果が出力されます。
100 は無限大の数ではありません
使用例 2:log(0) の場合
log(0) の値は定義されておらず、PHP では負の無限大として評価されます。次の例では、その結果が無限大であるかどうかを検証しています。
<?php $val = log(0); var_dump(is_infinite($val)); ?>
出力結果
bool(true)
使用例 3:acos(5) の場合
cos(x) の値は必ず -1 から 1 の間に収まるため、この範囲外の値を acos() に渡すと NAN が返されます。NAN は無限大ではないため、is_infinite() は FALSE を返します。
<?php $val = acos(5); var_dump(is_infinite($val)); ?>
出力結果
bool(false)
使用例 4:sqrt(-1) の場合
同様に、sqrt(-1) も NAN を生成します。そのため、is_infinite() 関数は false を返します。
<?php
$val = sqrt(-1);
$ret = is_infinite($val);
if ($ret == TRUE) {
echo $val . " は無限大の数です" . "\n";
} else {
echo $val . " は無限大の数ではありません" . "\n";
}
?>出力結果
NAN は無限大の数ではありません
まとめ
is_infinite() 関数は、値が float 型の範囲を超えて無限大になっているかどうかを手軽に判定できる便利な関数です。ただし、log(0) のような負の無限大は TRUE と判定される一方、acos(5) や sqrt(-1) のように計算不能を意味する NAN は FALSE となるため、無効な数値(NAN)を別途チェックしたい場合は is_nan() 関数と組み合わせて使うのがおすすめです。
-
PHPのgregoriantojd()関数とは?構文・パラメータ・使用例を解説
PHPのgregoriantojd()関数は、グレゴリオ暦(現在広く使われている暦)の日付をユリウス通日(Julian Day Count)に変換し、その結果としてユリウス日番号を返す関数です。ユリウス通日は、天文学や歴史上の日付計算などで利用される連続した日数表現であり、異なる暦同士の日付比較や計算を簡単に行えるのが特徴です。 注意 − グレゴリオ暦として有効な範囲は、紀元前4714年11月25日から紀元9999年12月31日以降までとなっています。この範囲外の日付を指定すると、正しい結果が得られない場合があります。 構文 GregorianToJD(month, date, year)
-
PHPのfscanf()関数とは?使い方とフォーマット指定子を徹底解説
PHPのfscanf()関数は、オープン中のファイルから入力を読み込み、指定されたフォーマットに従って解析するための関数です。パラメータを2つだけ渡して呼び出した場合、解析結果の値が配列として返されます。基本構文fscanf(file_pointer, format, mixed)パラメータの詳細file_pointer − fopen()関数を使って作成されたファイルシステムポインタリソースを指定します。format − 読み込むデータの形式(フォーマット)を指定します。使用できる主なフォーマット指定子は以下の通りです。%% − パーセント記号(%)そのものを返す%b − 2進数として読み込