is_numeric函数用于判断变量是否为数字或数字字符串,支持整数、小数、负数、科学计数法和十六进制(PHP 7+),如"123"、"-0.5"、"1e5"、"0xFF"均返回true;但含空格或非数字字符的字符串如" 123"、"123abc"返回false;相比is_int、is_float和ctype_digit更宽松,适用于用户输入验证,但需注意其可能意外匹配科学计数法等格式。

is_numeric 是 PHP 中用于判断一个变量是否为数字或数字字符串的函数。它能识别多种格式的数值,不仅限于整数,还包括小数、负数、科学计数法表示的数字等。
is_numeric 能识别的字符类型
该函数返回 true 的情况包括以下几类:- 纯整数字符串,如:"123"、"-456"、"+789"
- 浮点数字符串,允许包含小数点,如:"12.34"、"-0.5"、"+3.14"
- 科学计数法表示的字符串,如:"1e5"、"1E-5"、"-2.5e3"、"+3.14E+10"
- 十六进制数字字符串(PHP 7+),如:"0x1A"、"0XFF"
- 实际的数字类型变量,如整型 123 或浮点型 3.14
常见使用示例
下面是一些典型用法和结果:
var_dump(is_numeric(123)); // true
var_dump(is_numeric("123")); // true
var_dump(is_numeric("-12.34")); // true
var_dump(is_numeric("1e5")); // true
var_dump(is_numeric("1.23E-4")); // true
var_dump(is_numeric("0xFF")); // true (PHP 7+)
var_dump(is_numeric("abc")); // false
var_dump(is_numeric("123abc")); // false
var_dump(is_numeric("")); // false
var_dump(is_numeric(" ")); // false
与其他判断方式的区别
is_numeric 比 is_int 和 is_float 更宽松,因为它接受字符串形式的数字。而:- is_int 只对真正的整型变量返回 true
- is_float 只对浮点型变量返回 true
- ctype_digit 只识别由数字 0-9 组成的字符串,不支持负数、小数或科学计数法











