在php中有时候需要判断一个变量的值是否为数字或是否为数字字符串,而php中也提供了一个很好用的内置函数 is_numeric(),可以很轻松的来检测变量。
php is_numeric() 函数介绍
is_numeric():检测一个php的变量是否为数字或数字字符串。
语法:
is_numeric($var)
参数:
$var:被检测的变量
返回值:
如果被检测的变量是数字或字符串,返回TRUE,否则返回FALSE。
PHP is_numeric 检测变量是否为数字或数字字符串
例1:
php代码
<?php
$str = '123456';
echo $str.' 是否为数字:';
var_dump(is_numeric($str));
$str2 = '123456a';
echo $str2.' 是否为数字:';
var_dump(is_numeric($str2));
$str3 = 123456;
echo $str3.' 是否为数字:';
var_dump(is_numeric($str3));
$str4 = 1234.56;
echo $str4.' 是否为数字:';
var_dump(is_numeric($str4));
?>
打印结果:
123456 是否为数字:bool(true)
123456a 是否为数字:bool(false)
123456 是否为数字:bool(true)
1234.56 是否为数字:bool(true)
PS:如果被检测的变量,是一个带有小数的字符串,也会被认为是数字类型
示例2:
is_numeric() 函数,有可能会判断部为非数字的字段串为数字,比如部份16进制的数字。
php代码
<?php
echo is_number('1e4');//这个是16进制
echo is_number('1a4');//这个是16进制
function is_number($str){
if(is_numeric($str)){
return '是数字';
}else{
return '非数字';
}
}
?>
进行结果:
是数字
非数字
php判断是字符串是否为纯数字的方法
使用 is_numeric() 函数来判断一个字符串是否为数字时,逻辑并不严谨,因为它不仅仅能判断十进制的数字,也对部份十六进制数字类型的字符串免疫。
php中还提供了一个函数 ctype_digit() ,也可以达到判断字符串是否为数字的目的。
例:
<?php
$v = '1e4';
var_dump(ctype_digit($v));
//bool(false)
$v2 = '11245abcde';
var_dump(ctype_digit($v2));
//bool(false)
$v3 = '11245.55';
var_dump(ctype_digit($v3));
//bool(false)
$v4 = '11245';
var_dump(ctype_digit($v4));
//bool(true)
?>