is_finite

関数の概要

is_finite() 関数は、指定した数値が有限の値であるかどうかをチェックするためのPHP組み込み関数です。数値が「無限大(INF)」や「非数(NaN)」でない場合に true を返し、それ以外は false を返します。数値の有効性を確認したい場面で非常に役立ちます。

パラメータの説明

  • value:判定したい数値(floatまたはint)

戻り値

指定した数値が有限の場合は true、無限大(INFや-INF)、非数(NaN)の場合は false を返します。

使用例

基本的な使い方

<?php
var_dump(is_finite(100));    // bool(true)
var_dump(is_finite(1.5e300)); // bool(true)
var_dump(is_finite(INF));     // bool(false)
?>

通常の数字や大きな浮動小数点数は有限と判定されますが、INF(無限大)は false となります。

負の無限大と非数(NaN)の判定

<?php
var_dump(is_finite(-INF));  // bool(false)
var_dump(is_finite(NAN));   // bool(false)
?>

負の無限大や非数(計算が不可能な結果)は有限ではないため、false が返ります。

文字列や非数値の場合の挙動

<?php
var_dump(is_finite("123"));    // bool(true)
var_dump(is_finite("abc"));    // bool(false)
var_dump(is_finite(null));     // bool(false)
?>

数値に変換可能な文字列は有限として扱われますが、変換できない文字列やnullは false となります。

関連する関数

  • is_infinite() – 指定した数値が無限大かどうかを判定する
  • is_nan() – 指定した値が非数かどうかを判定する
  • is_numeric() – データが数値もしくは数値形式の文字列かどうかを判定する

まとめ

is_finite() 関数は数値が有限であるかどうかを簡単に判定でき、数値の妥当性チェックに有用です。特に数値計算の結果が無限大や非数になる可能性がある場合に役立ちます。数値が有効かどうかを確認してから処理を行いたい場合に、ぜひ活用してください。