je suis tombé sur cet exemple dans la documentation PHP:PHP Manual: Conversion de nombres dans Is_Numeric Exemple 1?
<?php
$tests = array(
"42",
1337,
0x539,
02471,
0b10100111001,
1337e0,
"not numeric",
array(),
9.1
);
foreach ($tests as $element) {
if (is_numeric($element)) {
echo "'{$element}' is numeric", PHP_EOL;
} else {
echo "'{$element}' is NOT numeric", PHP_EOL;
}
}
?>
Sortie:
'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.1' is numeric
Les cinq exemples après '42' tout est évaluée à la '1337'. Je peux comprendre pourquoi c'est le cas pour '1337e0' (notation scientifique), mais je ne comprends pas pourquoi c'est le cas pour le reste d'entre eux.
Je n'ai pas trouvé quelqu'un qui le mentionne dans les commentaires de la documentation et je ne l'ai pas trouvé demandé ici, donc quelqu'un peut-il expliquer pourquoi '0x539', '02471' et '0b10100111001' tous évaluent à '1337'.