【问题标题】:combine two if conditions results in one if condition结合两个 if 条件导致一个 if 条件
【发布时间】:2018-02-20 13:45:46
【问题描述】:

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

【问题讨论】:

  • 所以你希望这两个条件都应该通过?还是任何一个?
  • @prakashtank 我想要第一个如果条件结果和第二个如果条件结果在one if condition.....
  • 第一个使用!empty($_POST['searchOrder']) 而不是isset!=""
  • @vickey : 如果你想结合这两个条件,请查看我的回答
  • 不清楚,你想要这个:if ( (condition1) || (condition2) ) {result 1; result 2;} ?

标签: php logical-operators strstr


【解决方案1】:

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

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

【讨论】:

  • 第一个条件:我想显示name='Conformed'";但它们没有显示的行,但只有第二个条件在工作$hide .= 'style="display: none;"';
  • 对不起,我不明白你的评论。
  • 我得到了这个结果:$hide .= 'style="display: none;"'; ,但不是$userToSearch = "WHERE name='Conformed'";
  • 我还是不明白你想说什么。如果你在if 之后echo $userToSearch,它会回声吗?从那时起,我不知道你在用那个变量做什么,所以我不知道如何提供帮助。
  • 好的,我会告诉 cleary,表中有一行有 name 列的 value = Confirmed ,该行没有显示.....
【解决方案2】:

类似的东西?

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

【讨论】:

  • || 表示两个条件之一应该满足?如果 OP 两者都想要,那么这段代码可能不起作用
  • @prakashtank 在某些 cmets(以及问题本身)中明确要求 (condition1 OR condition2)
【解决方案3】:

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

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

【讨论】:

    【解决方案4】:

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

    (condition1) || (condition2)

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-30
      • 1970-01-01
      • 2021-08-18
      • 1970-01-01
      • 1970-01-01
      • 2019-04-10
      • 2012-04-21
      相关资源
      最近更新 更多