兩種偵測方法:1、使用is_numeric()函數,可以偵測一個字串是否為數字字串,語法“is_numeric(字串)”,傳回TRUE則是,反之則不是。 2.將字串強制轉為數字類型,再將數字與原字串進行比較,判斷是否相等,語法“strcmp((float)$str,$str)==0”,返回TRUE則是,反之則不是。
本教學操作環境:windows7系統、PHP8.1版、DELL G3電腦
方法1:使用is_numeric()函數偵測
字串只含數字,則字串為數字字串。
而is_numeric()函數可以偵測一個字串是否為數字字串。
is_numeric ($var)
$var:要偵測的變數。
如果指定的變數$var是數字和數字字串則傳回 TRUE,否則傳回 FALSE。注意浮點型回傳 1,即 TRUE。 (即可以檢查整數和小數)。
<?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"); ?>
方法2:強制類型轉換並比較是否相等
透過強制轉換類型,將字串轉為數字類型
將數字與原始字串進行比較,看看是否相等
相等,則原始字串是數字字串。
<?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"); ?>
說明:
1、強制型別轉換
只要在要轉換的變數之前加上用括號括起來的目標類型,括號中允許使用的變數類型如下所示:
(int)、(integer):轉換成整型;
(bool)、(boolean):轉換成布林型別;
(float)、(double)、( real):轉換成浮點數型別;
(string):轉換成字串型別;
(array):轉換成陣列型別;
(object):轉換成物件類型。
<?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() 函數
strcmp() 函數比較兩個字串。
strcmp(string1,string2)
傳回值: | 此函數傳回:
|
---|
推薦學習:《PHP影片教學》
以上是php怎麼檢測字串是否為數字的詳細內容。更多資訊請關注PHP中文網其他相關文章!