is_numeric

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

is_numeric Prüft, ob eine Variable eine Zahl oder ein numerischer String ist

Beschreibung

is_numeric(mixed $value): bool

Prüft, ob die gegebene Variable eine Zahl oder ein numerischer String ist.

Parameter-Liste

value

Die zu untersuchende Variable

Rückgabewerte

Gibt true zurück, wenn value eine Zahl oder ein numerischer String ist, ansonsten false.

Changelog

Version Beschreibung
8.0.0 Numerische Strings, die mit einem Leerzeichen enden ("42 "), geben nun true zurück. Zuvor wurde stattdessen false zurückgegeben.

Beispiele

Beispiel #1 is_numeric()-Beispiele

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

foreach (
$tests as $element) {
if (
is_numeric($element)) {
echo
var_export($element, true) . " ist numerisch", PHP_EOL;
} else {
echo
var_export($element, true) . " ist NICHT numerisch", PHP_EOL;
}
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

'42' ist numerisch
1337 ist numerisch
1337 ist numerisch
1337 ist numerisch
1337 ist numerisch
1337.0 ist numerisch
'0x539' ist NICHT numerisch
'02471' ist numerisch
'0b10100111001' ist NICHT numerisch
'1337e0' ist numerisch
'nicht numerisch' ist NICHT numerisch
array (
) ist NICHT numerisch
9.1 ist numerisch
NULL ist NICHT numerisch
'' ist NICHT numerisch

Beispiel #2 is_numeric() mit Leerzeichen

<?php
$tests
= [
" 42",
"42 ",
"\u{A0}9001", // nicht umbrechendes Leerzeichen
"9001\u{A0}", // nicht umbrechendes Leerzeichen
];

foreach (
$tests as $element) {
if (
is_numeric($element)) {
echo
var_export($element, true) . " ist numerisch", PHP_EOL;
} else {
echo
var_export($element, true) . " ist NICHT numerisch", PHP_EOL;
}
}
?>

Das oben gezeigte Beispiel erzeugt mit PHP 8 folgende Ausgabe:

' 42' ist numerisch
'42 ' ist numerisch
' 9001' ist NICHT numerisch
'9001 ' ist NICHT numerisch

Das oben gezeigte Beispiel erzeugt mit PHP 7 folgende Ausgabe:

' 42' ist numerisch
'42 ' ist NICHT numerisch
' 9001' ist NICHT numerisch
'9001 ' ist NICHT numerisch

Siehe auch