is_numeric

(PHP 4, PHP 5, PHP 7, PHP 8)

is_numeric Finds whether a variable is a number or a numeric string

Description

is_numeric(mixed $value): bool

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

Parameters

value

The variable being evaluated.

Return Values

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

Changelog

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

Examples

Example #1 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;
}
}
?>

The above example will output:

'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

Example #2 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;
}
}
?>

Output of the above example in PHP 8:

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

Output of the above example in PHP 7:

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

See Also