is_nan

関数の概要

PHPの is_nan 関数は、引数として渡された値が「数値ではない」(NaN:Not a Number)かどうかを判定するための関数です。数値演算や数値の検証処理を行う際に、対象の値が無効な数値(NaN)であるかを簡単に確認できます。

パラメータの説明

  • float $val:判定したい数値、または数値に変換可能な値を指定します。

戻り値

is_nan は、引数がNaNの場合は true を返し、それ以外の場合は false を返します。つまり、判定した値が通常の数値の場合は false となります。

使用例

基本的な使い方

<?php
$a = acos(1.01); // acosの範囲外でNaNが返る
var_dump(is_nan($a)); // bool(true)

$b = 5.5;
var_dump(is_nan($b)); // bool(false)
?>

この例では、実数の範囲外の値を acos() に渡した結果が NaN となるため、is_nantrue を返します。一方、普通の数値5.5は false となります。

数値計算のエラー検出に利用する例

<?php
function safe_divide($x, $y) {
    $result = $x / $y;
    if (is_nan($result)) {
        return "計算エラーです";
    }
    return $result;
}

echo safe_divide(0, 0); // NaNとなるためエラー判定
?>

ゼロ除算など計算結果が NaN になるケースを is_nan で検出し、エラー処理を実装する応用例です。

数値検証に配列を用いた応用例

<?php
$values = [10, acos(5), 3.14, log(-1)];
foreach ($values as $v) {
    if (is_nan($v)) {
        echo "NaNが見つかりましたn";
    } else {
        echo "数値: $vn";
    }
}
?>

複数の値を順に調べ、NaNを判別してメッセージを表示しています。角度関数や対数関数でよく発生するNaNをチェックできる例です。

関連する関数

  • is_int:値が整数かどうか判定する
  • is_float:値が浮動小数点数かどうか判定する
  • is_numeric:値が数値または数値形式の文字列か判定する
  • floatval:値を浮動小数点数に変換する

まとめ

is_nan 関数は、PHPで数値が正常な値か、または無効な数値(NaN)かを判別する際に便利です。特に数学関数の結果や計算による異常値を検出し、エラー処理やデータ検証に役立てることができます。数値操作の安全性を高めるために、ぜひ使いこなしてみてください。