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

# 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($element, true) . " is numeric", PHP_EOL;
} else {
echo var_export($element, true) . " 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() - 変数が配列かどうかを検査する