Получение переменной из формы:
<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
// 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']
чтобы преобразовать его в целое число.