If / else简化为三元运算符


if / else simplification to ternary operator

可以对下面的代码这样做吗?我看到的问题是,在else子句中有两个语句,我无法找到一种方法来适应echo…我需要返回1或0。也许有人知道诀窍?

  function empty_user($c)    
    {
    if((int)!in_array('',$this->a,TRUE)) 
      {
      return 1;
      }
     else
      {
      echo $c;
      return 0;
      } 
    }

无三元制=/。尽管您可以将其简化很多,因为一旦函数返回,它就会停止解释该函数,因此您可以消除else。

function empty_user($c) {
    if ((int)!in_array('',$this->a,TRUE)) return 1;
    echo $c;
    return 0;
}

一般不应该使用三元运算符来确定执行顺序,而且,不,您将无法转换那里的if/else

如果您想在任何块中使用多个操作,则不能使用三元操作符,但问题是为什么要这样做?

如果你有完整的块,你可以继续添加代码,这将更清晰,更容易更新。

in_array返回一个bool类型,这对于if语句来说是完美的——不需要将其强制转换为int类型。

    function empty_user($c)    
    {
       if (in_array('',$this->a,TRUE))
       {
          echo $c;
          return 0;
       }
       return 1;
    }