Я проверил различные методы (is_numeric, isset), но я не уверен, что встроенные методы безопасны в любом случае.
Мне нужно, чтобы он работал, даже если переменная для проверки:
Я надеюсь, что это охватывает все ваши дела. 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
возможно функция is_numeric () будет работать для вас
http://php.net/manual/en/function.is-numeric.php
все встроенные функции довольно безопасны
возможно попробуйте этот код:
if (!empty($variable) && is_numeric($variable)) {...}