(Int) $ _ GET [‘user_input’] безопасно?

Можно ли предположить, что в

if (($i = (int)trim($_GET['user_input'])) != 0) {
// do stuff with $i
}

$i может ли быть целое число?


Редактировать:

Я сейчас использую:

if (ctype_digit($i = $_GET['user_input'])) {
// do stuff with $i
}

1

Решение

Так что если ваш единственный вопрос, если это в любом случае intтогда ответ:

да

Но если приведение к int завершится неудачно (например, input: 'a') $i просто 0

Пример:

Ввод, вывод:

4       ->  4
-5      -> -5
"14"    -> 15
"a"     ->  0
"!"     ->  0
array() ->  0

Примечание:

Если значение массива обрезается неудачно, и вы получаете ошибку

0

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

$i = intval($_GET['user_input']);
if ( $i != 0) {
// do stuff with $i
}

проверьте документацию Вот

0

Если вы проверите для целого числа, то

if(is_numeric($_GET['user_input']) && $_GET['user_input'] > 0) {
//your code
}
0

Проверь это

if(stripslashes(trim($_GET['user_input']))) > 0){
//your code Here
}
0
По вопросам рекламы [email protected]