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.
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"); ?>
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"); ?>
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('content-type:text/html;charset=utf-8'); $str = '123.456abc'; echo '原变量 $str 的类型为:'.gettype($str)."<br>"; $int = (int)$str; echo '变量 $int 的类型为:' . gettype($int) . '<br>'; $float = (float)$str; echo '变量 $float 的类型为:' . gettype($float) . '<br>'; $bool = (bool)$str; echo '变量 $bool 的类型为:' . gettype($bool). '<br>'; $arr = (array)$str; echo '变量 $arr 的类型为:' . gettype($arr); ?>
2. strcmp() function
strcmp() function compares two strings.
strcmp(string1,string2)
Return value: | The function returns:
|
---|
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!