2016-01-16 50 views
0

我需要一個字符串並返回true,如果只有正數或負數字在字符串中。有沒有辦法做到這一點?需要ctype_digit爲負數返回true

$rating = "-25"; 
if (!ctype_digit($rating)) { 
echo "Not a digit."; 
} 
else { 
echo "Is a digit."; 
} 

結果:

不是數字。

需要結果:

是其中一位。

回答

2

ctype_digit()適用於由只有的數字組成的值。 其中$rating = -25;是錯誤的,因爲它在此特定情況下被視爲ASCII碼(下文解釋),並且"-25"無效,因爲-不是數字。 您可以鍵入玩花樣,但我認爲你正在尋找is_numeric()

echo is_numeric("-25");echo ctype_digit((integer) $var);

但是,如果不能將字符串轉換爲整數後者將返回true。如果是這樣的話,它的值就是0。

重要: 如果傳遞到ctype_digit()-128255範圍內的字面整數值被轉換爲在ASCII表中定義的字符。如果它不是一個數字,預計會出現錯誤。任何其他整數值都是正常的預期行爲。

+2

「只適用於實數整數」這只是錯誤的。 ctype_digit適用於字符串中的數字。 – modu

+0

@modu你說得對,我編輯得更具體。 – Xorifelse