LoginSignup
7
6

More than 5 years have passed since last update.

php で 整数かチェックする(数値型文字列含む)

Last updated at Posted at 2015-04-22

is_int()は数値型文字列をfalseで返す。
is_numeric()は数値型文字列もtrueで返す。

てことで、こんなふうに書いてみた。

static function is_error_int(\$value){
//データが存在するとき、数値(数値型文字列含む)、int変換した時と同じ(端数がない)
return isset(\$value) && ( ! is_numeric(\$value) || $value - intval(\$value) > 0 );
}

追記:
filter_var による方法を教えて頂きました。
これは便利ですね。

echo is_decimal(10);        //true
echo is_decimal(10.01);     //false
echo is_decimal("10");      //true
echo is_decimal("10.01");   //false
echo is_decimal("ABC");     //false
echo is_decimal(0x10);      //true
echo is_decimal("0x10");    //false


function is_decimal($value) {
    return filter_var($value, FILTER_VALIDATE_INT) !== false;
}

その他にもたくさんのフィルターがあります。
http://php.net/manual/ja/filter.filters.validate.php

7
6
6

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6