【问题标题】:Can we find out which statement in an IF statement with multiple ORs was being passed?我们能否找出在具有多个 OR 的 IF 语句中传递了哪个语句?
【发布时间】:2013-07-20 15:55:52
【问题描述】:

如果我们有一个 if 语句,例如

`<?php if($data[1][0][1] == "aaa" || $data[2][0][1] == "bbb" || $data[1][0][2] == "ccc" || $data[2][0][2] == "ddd")
{
  $return_value = {the index array value being passed above};
  echo "which portion in the if statement OR was actually passed? and return that value" . $return_value;
}?>`

我们能否准确找出在 OR if 语句中传递的实际值?

【问题讨论】:

  • 您的表达式的第一部分无效,应该是$data[1][0][1]。和不。如果不分解 IF,就无法表明表达式的哪一部分为真。
  • 谢谢!,只是想验证一下这个想法

标签: php if-statement return


【解决方案1】:

您可以使用分配将返回一个值的事实

所以

if (($part = 1 && $data[1][0][1] = "aaa") ||

等等。然后检查 if 语句中的部分。它将被设置为触发真实陈述的部分

虽然如果将其从 if 语句中取出并为其提供更好的结构可能会更好

【讨论】:

    【解决方案2】:

    我认为唯一的方法是删除所有 OR 条件,留下其中一个。 要么 你可以试试这个

    `<?php if($data[1][0][1] == "aaa")
    {
      echo 'first If';
    }
    if($data[2][0][1] == "bbb"){
      echo 'second if';
    }
    if($data[1][0][2] == "ccc"){ echo 'third if';}
    
    if($data[2][0][2] == "ddd"){
    echo 'fourth if';
    }
    ?>`
    

    【讨论】:

      【解决方案3】:

      在您的 if 语句中,我们无法找出哪一部分是正确的。

      这里有更多关于Short-circuit evaluation的细节

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-05-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-23
        相关资源
        最近更新 更多