Как получить int вместо строки из формы?

Получение переменной из формы:

<form method = 'POST' action = ''> <input type = 'text' name = 'a' size = '1' > <input type = 'submit' value = 'Find it'> </form>" 

Если я вхожу в 1 и использую gettype ($ POST _ ['a']), он возвращает мне строку, возможно ли ввести int? потому что после этого я хочу проверить, является ли эта переменная int.

ОБНОВИТЬ

Получил ответы, что он всегда возвращает строку, и они предложили мне использовать (int) или intval (), но если это действительно строка как «a», она возвращает 0, но может также быть целочисленным значением 0, как преодолеть эту проблему?

ОБНОВИТЬ

После редактирования опечатки Брэд Кристи предложил лучший способ, используя is_numeric

Solutions Collecting From Web of "Как получить int вместо строки из формы?"

 // convert the $_POST['a'] to integer if it's valid, or default to 0 $int = (is_numeric($_POST['a']) ? (int)$_POST['a'] : 0); 

Вы можете использовать is_numeric для проверки, а php также допускает листинг для целочисленного типа.

Для фактических сравнений вы можете выполнить is_int .

Обновить

Версия 5.2 имеет filter_input которая может быть немного более надежной для этого типа данных (и других):

 $int = filter_input(INPUT_POST, 'a', FILTER_VALIDATE_INT); 

Я выбрал FILTER_VALIDATE_INT , но есть также FILTER_SANITIZE_NUMBER_INT и многое другое – просто зависит от того, что вы хотите сделать.

Отправляя провод через HTTP, все это строка. Вы должны решить, что «1» должен быть 1 .

Нет. HTTP обрабатывает только текст (или двоичные файлы).

Вы должны его преобразовать.

Я бы использовал (int)$_POST['a'] чтобы преобразовать его в целое число.