Home  >  Article  >  Backend Development  >  How to detect whether a string is a number in php

How to detect whether a string is a number in php

青灯夜游
青灯夜游Original
2022-08-29 19:21:535414browse

Two detection methods: 1. Use the is_numeric() function to detect whether a string is a numeric string. The syntax is "is_numeric (string)". If TRUE is returned, it is, and vice versa. 2. Convert the string to a numeric type, and then compare the number with the original string to determine whether they are equal. The syntax is "strcmp((float)$str,$str)==0". If TRUE is returned, vice versa. no.

How to detect whether a string is a number in php

The operating environment of this tutorial: windows7 system, PHP version 8.1, DELL G3 computer

Method 1: Use is_numeric() The function detects that the

string contains only digits, then the string is a numeric string.

The is_numeric() function can detect whether a string is a numeric string.

is_numeric ($var)
  • $var: Variable to be detected.

Returns TRUE if the specified variable $var is a number or numeric string, otherwise returns FALSE. Note that float returns 1, which is TRUE. (i.e. can check both integers and decimals).

<?php
header("Content-type:text/html;charset=utf-8");
function f($str){
	if (is_numeric($str)){
    	echo "$str 是数字字符串<br><br>";
	}
	else{
	    echo "$str 不是数字字符串<br><br>" ;
	}
}
f("a678");
f("678");
f("3.14");

?>

How to detect whether a string is a number in php

Method 2: Cast type conversion and compare for equality

  • By casting type, Convert the string to a numeric type

  • Compare the number with the original string to see if they are equal

    If they are equal, the original string is a numeric string.

<?php
header("Content-type:text/html;charset=utf-8");
function f($str){
	$num=(float)$str;
	if (strcmp($num,$str)==0){
    	echo "$str 是数字字符串<br><br>";
	}
	else{
	    echo "$str 不是数字字符串<br><br>" ;
	}
}
f("3.14");
f("a678");
f("678");
f("23d5");
?>

How to detect whether a string is a number in php

Instructions:

1. Forced type conversion

Just add the target type enclosed in parentheses before the variable to be converted. The variable types allowed in the parentheses are as follows:

  • (int), (integer): Conversion Integer type;

  • (bool), (boolean): Convert to Boolean type;

  • (float), (double), ( real): Convert to floating point type;

  • (string): Convert to string type;

  • (array): Convert to array Type;

  • (object): converted to object type.

<?php
header(&#39;content-type:text/html;charset=utf-8&#39;);   
$str = &#39;123.456abc&#39;;
echo &#39;原变量 $str 的类型为:&#39;.gettype($str)."<br>";
$int = (int)$str;
echo &#39;变量 $int 的类型为:&#39; . gettype($int) . &#39;<br>&#39;;
$float = (float)$str;
echo &#39;变量 $float 的类型为:&#39; . gettype($float) . &#39;<br>&#39;;
$bool = (bool)$str;
echo &#39;变量 $bool 的类型为:&#39; . gettype($bool). &#39;<br>&#39;;
$arr = (array)$str;
echo &#39;变量 $arr 的类型为:&#39; . gettype($arr);
?>

How to detect whether a string is a number in php

2. strcmp() function

strcmp() function compares two strings.

strcmp(string1,string2)
Return value: The function returns:
  • 0 - If the two strings are equal
  • < ;0 - if string1 is less than string2
  • >0 - if string1 is greater than string2

Recommended learning: "PHP Video tutorial

The above is the detailed content of How to detect whether a string is a number in php. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn