Мне нужно проверить, не является ли $ _POST ['a'] пустым И является либо «1», либо «2», поэтому пользователь не может удалить a = или изменить значение с 1 или 2 на что-то еще с пути публикации:Если оператор с несколькими логическими сравнениями
<?php
if(empty($_POST['a']) || !in_array($_POST['a'], array('1', '2'))) {
echo 'error1';
} else if ($_POST['a'] == '1') {
do something;
} else if ($_POST['a'] == '2') {
do something;
} else {
echo 'error2';
}
?>
Может ли кто-нибудь научить меня, как это сделать правильно?
Много большого спасибо
Это больше ввести, но более эффективно делать 'if (empty ($ _ POST ['a']) || ($ _POST ['a']! = 1 && $ _POST ['a']! = 2)) {'в отличие от in_array – chrislondon
просто попробовал и не работал. Я получаю ошибку, независимо от того, a = 1, 2, 3, 4 или пустой. 0? Php if (empty ($ _ POST ['a']) || ($ _POST ['a']! = 1 && $ _POST ['a']! = 2)) { echo 'error' ; } else { echo 'good'; } ?> было бы проблемой синтаксиса? –
Это синтаксическая проблема. Вам не хватает ')' в конце первого 'if'. И это, если вам нужно использовать IDE. Я просто использовал ваш код и сделал его красивее, никогда не обращал внимания на синтаксические ошибки ... – CodeAngry