PHP 使用 is_numeric 和 ctype_digit 檢查數字的差別

PHP 要檢查某個變數是否為數字,有兩個 Function 可以使用,那這兩個 Function 的差別是?

PHP 使用 is_numeric 和 ctype_digit 檢查數字的差別

PHP 有 is_numeric 和 ctype_digit 可以檢查字串是否為數字,這兩個 Function 的主要差異在於 負數、小數 的回傳值會有不同。

  • is_numeric:檢查字串是否為數字、數字字串,負數和小數是可以的
  • ctype_digit:檢查「字串」是否「全部都是」數字,負數和小數會是 false

註:ctype_digit 丟進去的變數需要是字串型態,數字型態會回傳 false

  1. <?php
  2. $a = 123;
  3. var_dump(is_numeric($a)); // true
  4. var_dump(ctype_digit($a)); // false
  5. $a = '123';
  6. var_dump(is_numeric($a)); // true
  7. var_dump(ctype_digit($a)); // true
  8. $a = '0123';
  9. var_dump(is_numeric($a)); // true
  10. var_dump(ctype_digit($a)); // true
  11. $a = 0.123;
  12. var_dump(is_numeric($a)); // true
  13. var_dump(ctype_digit($a)); // false
  14. $a = -123;
  15. var_dump(is_numeric($a)); // true
  16. var_dump(ctype_digit($a)); // false
  17. $a = 'abc';
  18. var_dump(is_numeric($a)); // false
  19. var_dump(ctype_digit($a)); // false
  20. ?>

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料