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)