PHP Version
4+
/* Integer Type */
var_dump(is_numeric(1));         // bool(true)
var_dump(is_numeric(0));         // bool(true)
var_dump(is_numeric(-10));       // bool(true)

/* Floating-Point Numbers (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)

/* Numeric Strings */
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)

/* Non-Numeric Strings */
var_dump(is_numeric('hello'));    // bool(false)
var_dump(is_numeric('abc123'));   // bool(false)

/* Results of Numeric Operations */
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) => numeric string with trailing whitespace
var_dump(is_numeric(' 35')); // bool(true)  => numeric string with leading whitespace
var_dump(is_numeric('35 ')); // bool(true) => returns true starting from PHP 8.0.0
var_dump(is_numeric(' 35')); // bool(true) => still returns true for strings with leading whitespace
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)