我正在制作一个搜索引擎,并且我已经做好了一个查询,它是从您想要做的不同类型的搜索(例如用户名、城市、年龄等)组合起来的。我已经谈到了必须执行IF语句才能输出正确结果的部分,但出于某种原因,我不知道它是如何选择另一个IF语句的,而不是我所希望的那样。
该脚本响应了为调试而执行的IF块,它说执行的是"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";
}脚本输出:时代
发布于 2011-02-23 16:36:37
$searchFromAge != null || $searchFromAge != "noOption"如果$searchFromAge == "noOption“为!= null,则此条件为真。
头需要在条件上做出改变。
在if条件下使用($searchFromAge != null && $searchFromAge != "noOption")。
你所有的条件都一样。使用&&而不是||
发布于 2011-02-23 16:44:35
你的逻辑否定做错了。(A == B || C == D)的否定是(A != B && C != D),注意到了&&。
所以:
$searchFromAge != null || $searchFromAge != "noOption"变成:
$searchFromAge != null && $searchFromAge != "noOption"希望这能有所帮助。
https://stackoverflow.com/questions/5093784
复制相似问题