如果/ Else在PHP中不为真,则返回TRUE

时间:2016-01-11 20:16:12

标签: php if-statement

我正在抓住登录$userrow['name']的用户名,然后我使用if / else来比较2个字符串

    $user1 = "admin";
    $user2 = "Gil";
    if ($userrow['name'] == $user1 || $user2 ) {
        echo "true";
    }else{
        echo "false";
    }

在这种情况下我的$userrow['name']它=“Andres”,显然是Andres!= Gil ||管理员

我做错了什么?

3 个答案:

答案 0 :(得分:4)

这种逻辑更易于维护:

$users = [$user1, $user2];

if (in_array($userrow['name'], $users)) {
    // Username exists
}

答案 1 :(得分:3)

您正在进行第一次检查,但检查$user2会为您提供true,因为if("Admin")true

更改

if ($userrow['name'] == $user1 || $user2 )

if ($userrow['name'] == $user1 || $userrow['name'] == $user2 )

答案 2 :(得分:3)

你的逻辑错误。我会用英语来说出你的if陈述的作用:

  

如果$userrow['name']等于变量$user1中保存的值,或者变量$user2中保存的值不是 falsey ...

$user2中,您的值为“Gil”。由于“Gil”不是假的(换句话说,它不是假的或零或零),因此在if语句的上下文中进行评估时,它被认为是 true 。我想这就是你要说的话:

if ($userrow['name'] == $user1 || $userrow['name'] == $user2 ) {