is_numeric

(PHP 4, PHP 5, PHP 7)

is_numeric 変数が数字または数値形式の文字列であるかを調べる

説明

is_numeric ( mixed $var ) : bool

指定した変数が数値であるかどうかを調べます。数値形式の文字列は以下の要素から なります。(オプションの)符号、任意の数の数字、(オプションの)小数部、 そして(オプションの)指数部。つまり、+0123.45e6 は数値として有効な値です。十六進表記(0xf4c3b00c など) や二進表記 (0b10100111001 など) は認められません。

パラメータ

var

評価する変数。

返り値

var が数値または数値形式の文字列である場合に TRUE、それ以外の場合に FALSE を返します。

例1 is_numeric() の例

<?php
$tests 
= array(
    
"42",
    
1337,
    
0x539,
    
02471,
    
0b10100111001,
    
1337e0,
    
"not numeric",
    array(),
    
9.1,
    
null
);

foreach (
$tests as $element) {
    if (
is_numeric($element)) {
        echo 
var_export($elementtrue) . " is numeric"PHP_EOL;
    } else {
        echo 
var_export($elementtrue) . " is NOT numeric"PHP_EOL;
    }
}
?>

上の例の出力は以下となります。

'42' is numeric
1337 is numeric
1337 is numeric
1337 is numeric
1337 is numeric
1337 is numeric
'not numeric' is NOT numeric
array () is NOT numeric
9.0999999999999996447286321199499070644378662109375 is numeric
NULL is NOT numeric

変更履歴

バージョン 説明
7.0.0 十六進表記(0xf4c3b00c など) の文字列は数値形式の文字列とみなされなくなりました。 つまり、is_numeric()FALSE を返すようになりました。

参考

  • ctype_digit() - 数字かどうかを調べる
  • is_bool() - 変数が boolean であるかを調べる
  • is_null() - 変数が NULL かどうか調べる
  • is_float() - 変数の型が float かどうか調べる
  • is_int() - 変数が整数型かどうかを検査する
  • is_string() - 変数の型が文字列かどうかを調べる
  • is_object() - 変数がオブジェクトかどうかを検査する
  • is_array() - 変数が配列かどうかを検査する