PHP | 数値かどうか判別する方法

PHPで指定した値や変数が数値かどうかを判別する方法と、そのサンプルコードを紹介しています。

数値かどうか判別する

PHPで指定した値が数値かどうか判別するにはis_int()関数やis_float()関数、is_numeric()関数が利用可能です。

is_int()は指定した値や変数の値が整数の場合は「true」、それ以外は場合は「false」を返します。

想定される値が整数で、文字列型になっていない場合はis_int()が便利です。

整数かどうか is_int()

べき乗で100になる科学記法「1e2」「false」を返すので注意が必要です。

if(is_int(123)){
	// 整数です
}else{
	// 整数ではありません
}

is_int()関数で各種値を指定した場合は以下のような結果になります。

is_int(1) // true
is_int('1') // false
is_int(1.1) // false
is_int('1.1') // false
is_int(1e2) // false

浮動小数点型かどうか is_float()

is_float()は指定した値や変数の値が浮動小数点型の場合は「true」、それ以外は場合は「false」を返します。

想定する値が小数点以下を含む可能性がある場合は、この関数が利用できます。

べき乗で100になる科学記法「1e2」「true」を返します。謎。

if(is_int(1.23)){
	// 浮動小数点型です
}else{
	// 浮動小数点型ではありません
}

is_float()関数で各種値を指定した場合は以下のような結果になります。

is_float(1) // false
is_float('1') // false
is_float(1.1) // true
is_float('1.1') // false
is_float(1e2) // false

数値かどうか is_numeric()

is_numeric()関数は指定した値や変数の値が文字列型を含む数値の場合に「true」、それ以外は場合は「false」を返します。

値が数値のみで形成させれいればクォーテーションで囲った文字列型として定義されていても「true」を返します。

べき乗の科学記法「1e2」なども「true」を返します。

数値に変換できない文字列を含む文字列型やその他の値はいずれも「false」を返します。

if(is_numeric(123)){
	// 数値です
}else{
	// 数値ではありません
}

is_numeric()関数で各種値を指定した場合は以下のような結果になります。

is_numeric(1) // true
is_numeric('1') // true
is_numeric(1.1) // true
is_numeric('1.1') // true
is_numeric('1 ') // true
is_numeric('01') // true
is_numeric(1e2) // true
is_numeric('1e2') // true
is_numeric('12a') // false

PHP,PHP 判別

Posted by Yousuke.U