2012-09-21 25 views
1

如果我在檢查一個變量,看它是否是在bash整數編碼將類似於我怎麼能在PHP檢查變量的整數值

if ! [[ "$yournumber" =~ ^[0-9]+$ ]] ; then 

是否有辦法PHP來檢查變量是否包含整數?

謝謝大家我想我需要澄清,我想評估一下,數字沒有十進制值的例子是nuber 1對1.2或任何其他小數點後面的值。 在此先感謝。

+0

['ctype_digit'](http://us.php.net/ctype_digit)可能會比regexps更快。 – DCoder

回答

0

完全相同的方式:if(preg_match("/^[0-9]+$/",$yournumber))

另外,試試這個:if(strval(intval($yournumber)) === strval($yournumber))

0

您可以使用函數is_int()檢查一個變量包含一個整數(整數)

+1

只有'is_int(「23」)=== false'是可以接受的。 – DCoder

+0

詢問整數值。所以'is_int(1.23);'會驗證爲有效。 –

4

您可以使用ctype_digit此:

if (ctype_digit($yournum)) { 
    // ... 
} 

PHP文件:

檢查是否所有提供的字符串中的字符,文本,是數字。

這不包括.,如其示例所示(在我鏈接的頁面上)。

0

還有is_numeric(),真的取決於你想要做什麼。

+0

謝謝你的作品。 – user1683269

+0

沒問題,歡迎來到Stackoverflow。通常,當問題解決後,您必須按下帖子左側的灰色/綠色複選標記,以幫助您解決問題。 – dnLL

+0

這不是答案。正如[docs](http://php.net/manual/en/function.is-numeric.php)所述; 「查找給定的變量是否爲數字,數字字符串由可選符號,**任意數字**,可選小數部分和可選指數部分組成,因此+ 0123.45e6是一個有效的數值,十六進制(例如0xf4c3b00c)和二進制(例如0b10100111001)表示法是不允許的。「如果你想找到整數,你需要[ctype_digit](http://php.net/manual/en/function.ctype-digit.php)。 –

0

對於自然數(非負整數),請使用ctype_digit,正如其他人所建議的那樣。 對於包括底片在內的整數,您可以使用此圖案:/\-?\d+/