如果条件导致一个if条件,则组合两个

时间:2018-02-20 13:45:46

标签: php logical-operators strstr

如果条件1:

if(isset($_POST['searchOrder']) && $_POST['searchOrder']!='')
   {
       $userToSearch = "WHERE name='Conformed'"; 

   }

如果条件2:

if(strstr($status, "value1") !== false ) 

    {
    $hide .= 'style="display: none;"';
    }

我需要if condition 1 OR If condition 2,我在下面尝试过:

if (((strstr($status, "value1") !== false) ||  
   isset($_POST['searchOrder']) && $_POST['searchOrder']!='')
   {
       $userToSearch = "WHERE name='Conformed'";        
   })
                  {
                     $hide .= 'style="display: none;"';              
                  }

我也在下面试过,但都错了......

if ((strstr($status, "value1") !== false) ||  isset($_POST['searchOrder']) && $_POST['searchOrder']!=''))
                  {
                     $userToSearch = "WHERE name='Conformed'";   
                     $hide .= 'style="display: none;"';              
                  }

4 个答案:

答案 0 :(得分:2)

&&的优先级高于||,因此您可能需要重新排列条件,或在第二组周围加上括号。然后在同一个块中写下第二部分,就像这样。

if (strstr($status, "value1") !== false || (isset($_POST['searchOrder']) && $_POST['searchOrder']!=''))
{
    $userToSearch = "WHERE name='Conformed'";
    $hide .= 'style="display: none;"';       
}

答案 1 :(得分:0)

那样的东西?

if((isset($_POST['searchOrder']) && $_POST['searchOrder']!='') || strstr($status, "value1") !== false) {
       $userToSearch = "WHERE name='Conformed'"; 
       $hide .= 'style="display: none;"';
   }

答案 2 :(得分:0)

如果您需要满足这两个条件,那么请执行以下操作:

if (((strstr($status, "value1") !== false)) &&  (isset($_POST['searchOrder']) && $_POST['searchOrder']!='')))
                  {
                     $userToSearch = "WHERE name='Conformed'";   
                     $hide .= 'style="display: none;"';              
                  }

答案 3 :(得分:0)

如果你想要两个条件,你应该记住分组。

(condition1) || (condition2)

在你的情况下,你有&&条件作为第二种情况的一部分,它没有分组,因此它首先处理condition1和condition2的第一部分之间的OR条件,而不是最后的AND,这不是你想要的。