Непонятные условия IF - PullRequest
       11

Непонятные условия IF

0 голосов
/ 23 февраля 2011

Я создаю поисковую систему, и я сделал так, чтобы запрос был составлен из различных типов поиска, которые вы хотите выполнить (например, имя пользователя, город, возраст и т. Д.). Я подошел к той части, где я должен делать операторы IF для вывода правильных результатов, но по какой-то причине я не могу понять, как он выбирает другой оператор IF, чем я бы этого хотел.

Скрипт отображает, какой блок IF был выполнен для отладки, и говорит, что блок "age" выполняется вместо "county", который я хочу. Вот код и для записи; NORMAL и AGE ifs работают нормально, поэтому я подозреваю синтаксическую ошибку, которую не вижу. Я делаю что-то не так с логикой?

Первый ЕСЛИ

if(($searchFromAge == null || $searchFromAge == "noOption") && ($searchToAge == null || $searchToAge == "noOption") && ($searchCounty == null || $searchCounty == "noOption") && ($searchCity == null || $searchCity == "By")){
echo "normal";
}

Возраст ЕСЛИ

elseif(($searchFromAge != null || $searchFromAge != "noOption") && ($searchToAge != null || $searchToAge != "noOption")){
echo "age";
}

Графство IF

} elseif($searchCounty != null || $searchCounty != "noOption"){
echo "county";
}

Вывод сценария: возраст

Ответы [ 2 ]

1 голос
/ 23 февраля 2011
$searchFromAge != null || $searchFromAge != "noOption"

это условие будет выполнено, если $ searchFromAge == "noOption", потому что это! = Null.

Вам необходимо внести изменения в условие.

Использовать ($searchFromAge != null && $searchFromAge != "noOption")если условие.

То же самое для всех ваших условий.используйте && вместо ||

0 голосов
/ 23 февраля 2011

Вы ошиблись своими логическими отрицаниями. Отрицание (A == B || C == D) равно (A != B && C != D), замечая &&.

Итак:

$searchFromAge != null || $searchFromAge != "noOption"

становится:

$searchFromAge != null && $searchFromAge != "noOption"

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...