is_numeric

関数の概要

is_numeric は、PHPで値が数値または数値形式の文字列かどうかを判定するための関数です。数値として扱えるかを確認したい場合に便利で、型を問わず数値的な値かどうかを判断できます。

パラメータの説明

  • mixed $var : 数値かどうかを判定したい値。例えば整数、浮動小数点数、文字列など、どんな型でも指定できます。

戻り値

入力された値が整数、浮動小数点数、またはそれらの数値形式の文字列であれば true を返します。それ以外の場合は false を返します。

使用例

基本的な使い方

<?php
var_dump(is_numeric(123));        // true
var_dump(is_numeric("456"));      // true
var_dump(is_numeric("7.89"));     // true
var_dump(is_numeric("abc"));      // false
var_dump(is_numeric(true));       // false
?>

整数や数字文字列は true を返しますが、数値ではない文字列や真偽値は false となります。

浮動小数点数の文字列も判定できる

<?php
var_dump(is_numeric("3.1415"));    // true
var_dump(is_numeric("-0.5"));      // true
var_dump(is_numeric("+2.7e3"));    // true (指数表記の文字列も数値と判断されます)
?>

指数表記も含む数値文字列は問題なく true と判定されるため、柔軟な判別が可能です。

ユーザー入力のバリデーション例

<?php
$input = "1000";

if (is_numeric($input)) {
    echo "数値として扱えます";
} else {
    echo "数値ではありません";
}
?>

フォームなどで受け取った文字列が数値かどうかを判定し、処理の分岐ができます。

関連する関数

  • is_int() – 変数が整数型かどうかを判定
  • is_float() – 変数が浮動小数点型かどうかを判定
  • ctype_digit() – 正の整数のみの数字文字列かを判定(符号や小数点はNG)
  • filter_var() – フィルター機能を使った数値検証も可能

まとめ

is_numeric は、PHPで数値や数値形式の文字列かどうかを簡単に判定できる便利な関数です。整数や浮動小数点数だけでなく、符号付きや指数表記の文字列も判定できるため、ユーザー入力の検証や型チェックに広く使われます。実務でも安全に数値判定を行う基本ツールとして覚えておくと便利です。