将两个 if 条件组合成一个 if 条件

combine two if conditions results in one if condition

如果条件 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;"';              
                  }

类似的东西?

if((isset($_POST['searchOrder']) && $_POST['searchOrder']!='') || strstr($status, "value1") !== false) {
       $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;"';       
}

如果您需要同时满足这两个条件,那么可以这样做:

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

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

(condition1) || (condition2)

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