ラボ > PHP:文字関連

PHP 数字かチェック(ctype_digit())

作成日:2018-09-14, 更新日:2018-11-08

基本

「ctype_digit()」に調査したい文字列を渡す

$str = 〇〇〇;
if ( ctype_digit(''.$str) ) {
   // 数字
}
else {
  // 数字じゃない
}

※数値の可能性があるので「''.$str」として無理やり文字列にして渡す。

▼下記のようになるそうだ。
・ctype_digit(数字)→true
・ctype_digit(数値)→false

サンプル

数値(整数、小数、マイナス)、半角数字(整数、小数、マイナス)、全角数字(整数、小数、マイナス)のそれぞれ。

結果 var_dump($str);
数値 $str = 0; 数字 int(0)
$str = 2; 数字 int(2)
$str = 500; 数字 int(500)
$str = -1; 数字じゃない int(-1)
$str = 2.5; 数字じゃない float(2.5)
半角数字 $str = '0'; 数字 string(1) "0"
$str = '2'; 数字 string(1) "2"
$str = '500'; 数字 string(3) "500"
$str = '-1'; 数字じゃない string(2) "-1"
$str = '2.5'; 数字じゃない string(3) "2.5"
全角数字 $str = '0'; 数字じゃない string(3) "0"
$str = '2'; 数字じゃない string(3) "2"
$str = '500'; 数字じゃない string(9) "500"
$str = '-1'; 数字じゃない string(4) "-1"
$str = '-1'; 数字じゃない string(6) "-1"
$str = '2.5'; 数字じゃない string(7) "2.5"
$str = '2.5'; 数字じゃない string(9) "2.5"