兩種方法: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 開始。
推薦學習:《》
以上就是php怎麼判斷字串是不是整數的詳細內容,更多請關注TW511.COM其它相關文章!