如果不是PHP似乎没有正常工作

时间:2014-03-19 18:36:52

标签: php if-statement

这似乎不起作用,不知道为什么但是IF NOT声明似乎对我不起作用。 我拼命检查了所有内容并且拼写正确。

这第一段代码似乎工作正常。

$queryString = "SELECT * FROM biler";   

if($searchType == "alle") {
    //nothing
} else {
    $queryString = " WHERE bilType = '$searchType'";
}

但事实并非如此。

$queryString = "SELECT * FROM biler";   

if(!$searchType == "alle") {
    $queryString = " WHERE bilType = '$searchType'";
}

5 个答案:

答案 0 :(得分:4)

你的"!"是在错误的地方

试试这个:

if($searchType != "alle") {
    $queryString = " WHERE bilType = '$searchType'";
}

!=代表"不等于"

您尝试对代码执行的操作是询问变量是否为" true"

答案 1 :(得分:4)

您的比较不正确。应该是

$queryString = "SELECT * FROM biler";   

if($searchType != "alle") {
    $queryString .= " WHERE bilType = '$searchType'";
}

参见php比较运算符 - http://php.net/ternary

答案 2 :(得分:3)

两件事......

首先,那些条件完全相反。因此,即使第二个确实“有效”,它仍会产生与第一个相反的效果。

其次,运营商不按您认为的顺序运作。你基本上是这样做的:

if ((!$searchType) == "alle")

您可以使用:

if (!($searchType == "alle"))

或者,更干净:

if ($searchType != "alle")

答案 3 :(得分:2)

你的!应该在整个条件下应用,即$ searchType ==" alle"如下所示

$queryString = "SELECT * FROM biler";   

if(!($searchType == "alle")) {
    $queryString = " WHERE bilType = '$searchType'";
}

答案 4 :(得分:1)

您检查过$searchType吗?也许它不存在?例如:

$queryString = "SELECT * FROM biler";   

if(isset($searchType) && $searchType == "alle") {
    //nothing
} else {
    $queryString = " WHERE bilType = '$searchType'";
}