PHP 要檢查某個變數是否為數字,有兩個 Function 可以使用,那這兩個 Function 的差別是?
PHP 使用 is_numeric 和 ctype_digit 檢查數字的差別
PHP 有 is_numeric 和 ctype_digit 可以檢查字串是否為數字,這兩個 Function 的主要差異在於 負數、小數 的回傳值會有不同。
- is_numeric:檢查字串是否為數字、數字字串,負數和小數是可以的
- ctype_digit:檢查「字串」是否「全部都是」數字,負數和小數會是 false
註:ctype_digit 丟進去的變數需要是字串型態,數字型態會回傳 false
<?php $a = 123; var_dump(is_numeric($a)); // true var_dump(ctype_digit($a)); // false $a = '123'; var_dump(is_numeric($a)); // true var_dump(ctype_digit($a)); // true $a = '0123'; var_dump(is_numeric($a)); // true var_dump(ctype_digit($a)); // true $a = 0.123; var_dump(is_numeric($a)); // true var_dump(ctype_digit($a)); // false $a = -123; var_dump(is_numeric($a)); // true var_dump(ctype_digit($a)); // false $a = 'abc'; var_dump(is_numeric($a)); // false var_dump(ctype_digit($a)); // false ?>