我想驗證$ _POST的包含,必須是數字。我如何檢查$ _POST的包含PHP?
例如(我想要的結果):
1876 //true
2.34 // false
erfka // false
1djs33 // false
我想驗證$ _POST的包含,必須是數字。我如何檢查$ _POST的包含PHP?
例如(我想要的結果):
1876 //true
2.34 // false
erfka // false
1djs33 // false
ctype_digit是你的朋友。它會檢查變量中是否只包含數字,而不是時段或其他任何數字。 ctype_digit甚至不允許負數,但只是數字。
它實際上也檢查有是包含的數字。用ctype_digit將空字符串評估爲false
。
嘗試使用PHP is_numeric
功能
這將是更好地使用ctype_digit!
嘗試使用此代碼 -
if(strpos($_POST['number'],'.') === false && is_numeric($_POST['number']))
echo 'Its a numeriac int value';
else
echo 'not a numeric value';
千萬不要使用這個! – Wesley
此代碼難以閱讀和錯誤。如果第一個表達式爲假(帶有strpos的表達式),則第二個表達式永遠不會執行(短路評估)。 strpos的結果是int或者false,爲了測試false,你應該使用'strpos()=== false',因爲位置0也被認爲是false。 – martinstoeckli
這會說「0XAE」是一個數字整數,它可能是正確的,因爲它可以評估爲int,但它可能是錯誤的問題。它也會錯誤地說「3e-1」是一個整數,當它實際上評估浮點數爲「0.3」時, –
你解決了我的問題。我測試了你的方式。有用。謝謝。 A + help –