is_numeric

Finds whether a variable is a number or a numeric string

&reftitle.description; `bool` `is_numeric` `mixed` `value`

Determines if the given variable is a number or a numeric string.

&reftitle.parameters;

`value`

- The variable being evaluated.

&reftitle.returnvalues;

Returns &true; if `value` is a number or a numeric string, &false; otherwise.

&reftitle.changelog;

&Version; | &Description;
8.0.0 | Numeric strings ending with whitespace (`"42 "`) will now return &true;. Previously, &false; was returned instead.

&reftitle.examples;

### `is_numeric` examples

    <?php
    $tests = array(
        "42",
        1337,
        0x539,
        02471,
        0b10100111001,
        1337e0,
        "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;
        }
    }
    ?>

&example.outputs;

    '42' is numeric
    1337 is numeric
    1337 is numeric
    1337 is numeric
    1337 is numeric
    1337.0 is numeric
    '0x539' is NOT numeric
    '02471' is numeric
    '0b10100111001' is NOT numeric
    '1337e0' is numeric
    'not numeric' is NOT numeric
    array (
    ) is NOT numeric
    9.1 is numeric
    NULL is NOT numeric
    '' is NOT numeric

### `is_numeric` with whitespace

    <?php
    $tests = [
        " 42",
        "42 ",
        "\u{A0}9001", // non-breaking space
        "9001\u{A0}", // non-breaking space
    ];

    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;
        }
    }
    ?>

&example.outputs.8;

    ' 42' is numeric
    '42 ' is numeric
    ' 9001' is NOT numeric
    '9001 ' is NOT numeric

&example.outputs.7;

    ' 42' is numeric
    '42 ' is NOT numeric
    ' 9001' is NOT numeric
    '9001 ' is NOT numeric

&reftitle.seealso;

- Numeric strings
- `ctype_digit`
- `is_bool`
- `is_null`
- `is_float`
- `is_int`
- `is_string`
- `is_object`
- `is_array`
- `filter_var`