null — Какой самый безопасный метод php для проверки того, что строка является числом?

Я проверил различные методы (is_numeric, isset), но я не уверен, что встроенные методы безопасны в любом случае.

Мне нужно, чтобы он работал, даже если переменная для проверки:

  • пустая строка
  • null / undefined или любое другое недопустимое состояние

0

Решение

Я надеюсь, что это охватывает все ваши дела. is_numeric кажется достаточно безопасным

$values = [
0,
-3232323,
423432094823904832948234574072357589345789345789345791305432794827342365786345693453417846393,
123232e43,
'-1232132132',
'023',
'abcdefaf',
'0xdeadbeef',
'',
null
];foreach ($values as $val) {
echo var_export($val, true);
if (is_numeric($val))
echo " is numeric\n";
else
echo " is NOT numeric\n";
}

Выход:

0 is numeric
-3232323 is numeric
4.2343209482390483E+92 is numeric
1.23232E+48 is numeric
'-1232132132' is numeric
'023' is numeric
'abcdefaf' is NOT numeric
'0xdeadbeef' is NOT numeric
'' is NOT numeric
NULL is NOT numeric
1

Другие решения

возможно функция is_numeric () будет работать для вас
http://php.net/manual/en/function.is-numeric.php

все встроенные функции довольно безопасны

возможно попробуйте этот код:

if (!empty($variable) && is_numeric($variable)) {...}
2

По вопросам рекламы [email protected]