两种方法:1、用intval()将字符串转为整数值,再用“==”运算符判断整数值是否和原字符串相等,语法“intval($str)==$str”,相等则是整数。2、用is_numeric()和strpos()判断字符串是否为不包含小数点的数字字符串,语法“!is_numeric($str)||strpos($str,".")!==false”,返回false则是整数,反之不是。
本教程操作环境:windows7系统、PHP8.1版、DELL G3电脑
php判断字符串是不是整数的两种方法
方法1:使用intval()函数和“==”运算符进行判断
使用intval()函数将字符串转为整数值
使用“==”运算符判断整数值是否和原字符串相等
<?php
header("Content-type:text/html;charset=utf-8");
function f($str){
$result = intval($str);
if($result==$str){
echo "$str 字符串是整数<br><br>";
}
else{
echo "$str 字符串不是整数<br><br>" ;
}
}
f("a678");
f("678");
f("3.14");
?>
方法2:使用is_numeric()函数和strpos()函数进行判断
用is_numeric()函数判断是否为数字或数字字符串(整数和浮点数)
用strpos()判断数字中是否含有小数点--排除浮点数
只需判断字符串是否为不包含小数点的数字字符串即可
<?php
header("Content-type:text/html;charset=utf-8");
function f($str){
if(!is_numeric($str)||strpos($str,".")!==false){
echo "$str 字符串不是整数<br><br>";
}else{
echo "$str 字符串是整数<br><br>";
}
}
f("a678");
f("3.14");
f("67854");
?>
说明:
intval() 函数
intval() 函数用于获取变量的整数值。
intval() 函数通过使用指定的进制 base 转换(默认是十进制),返回变量 var 的 integer 数值。 intval() 不能用于 object,否则会产生 E_NOTICE 错误并返回 1。
int intval ( mixed $var [, int $base = 10 ] )
参数说明:
$var:要转换成 integer 的数量值。
$base:转化所使用的进制。
如果 base 是 0,通过检测 var 的格式来决定使用的进制:
如果字符串包括了 "0x" (或 "0X") 的前缀,使用 16 进制 (hex);否则,
如果字符串以 "0" 开始,使用 8 进制(octal);否则,
将使用 10 进制 (decimal)。
返回值
成功时返回 var 的 integer 值,失败时返回 0。 空的 array 返回 0,非空的 array 返回 1。
最大的值取决于操作系统。 32 位系统最大带符号的 integer 范围是 -2147483648 到 2147483647。举例,在这样的系统上, intval('1000000000000') 会返回 2147483647。64 位系统上,最大带符号的 integer 值是 9223372036854775807。
字符串有可能返回 0,虽然取决于字符串最左侧的字符。
is_numeric()函数
is_numeric() 函数用于检测变量是否为数字或数字字符串。
bool is_numeric ( mixed $var )
参数说明:
$var:要检测的变量。
返回值
如果指定的变量是数字和数字字符串则返回 TRUE,否则返回 FALSE,注意浮点型返回 1,即 TRUE。
strpos()函数
strpos()函数查找字符串在另一字符串中第一次出现的位置(区分大小写)。
strpos($string,$find,$start)
参数说明:
$string :必需。规定被搜索的字符串。
$find:必需。规定要查找的字符。
$start: 可选。规定开始搜索的位置。
返回值:
返回字符串在另一字符串中第一次出现的位置,如果没有找到字符串则返回 FALSE。注释: 字符串位置从 0 开始,不是从 1 开始。