PHPバージョン
4+
/* 整数(integer)型 */
var_dump(is_numeric(1));         // bool(true)
var_dump(is_numeric(0));         // bool(true)
var_dump(is_numeric(-10));       // bool(true)

/* 浮動小数点数(float) */
var_dump(is_numeric(1.0));       // bool(true)
var_dump(is_numeric(0.0));       // bool(true)
var_dump(is_numeric(3.14));      // bool(true)

/* 数値形式の文字列 */
var_dump(is_numeric('1'));       // bool(true)
var_dump(is_numeric('0'));       // bool(true)
var_dump(is_numeric('10.5'));    // bool(true)
var_dump(is_numeric('123e2'));   // bool(true)

/* 文字列 */
var_dump(is_numeric('hello'));   // bool(false)
var_dump(is_numeric('abc123'));  // bool(false)

/* 数値演算の結果 */
var_dump(is_numeric(1 + 1));     // bool(true)
var_dump(is_numeric(10 / 2));    // bool(true)
var_dump(is_numeric(9 / 2));     // bool(true)

/* 型キャスト(Type Casting、型変換) */
var_dump(is_numeric((float) '1'));  // bool(true)
var_dump(is_numeric((int) '10.5')); // bool(true)
var_dump(is_numeric((string) 123)); // bool(true)
is_numeric(mixed $value): bool
var_dump(is_numeric('35 ')); // bool(false) => 数値の後に空白がある数値形式の文字列がある場合
var_dump(is_numeric(' 35')); // bool(true)  => 数値の前に空白がある数値形式の文字列がある場合
var_dump(is_numeric('35 ')); // bool(true) => PHP 8.0.0 バージョンから true を返す
var_dump(is_numeric(' 35')); // bool(true) => PHP 8.0.0 バージョン以前も同様に true を返す
var_dump(is_numeric('+123')); // bool(true)
var_dump(is_numeric('-456')); // bool(true)
var_dump(ctype_digit('+123')); // bool(false)
var_dump(ctype_digit('-456')); // bool(false)

var_dump(ctype_digit('456'));  // bool(true)