【问题标题】:php modify expression return value with one boolean varphp 用一个布尔变量修改表达式返回值
【发布时间】:2012-08-21 16:18:29
【问题描述】:

这听起来可能很幼稚, 但是在 PHP 中,是否可以用一个布尔值修改表达式的结果?

例如:

if(expression)
     //execute code

现在,我该怎么做?

if(!expression)
    //execute code

用另一个布尔值控制?

喜欢:

$bool = true;
if( ($bool? :!)expression ) // if($bool) => !expresion ; if(!$bool) => expression 
    //execute code

所以基本上我想在$bool 为真时拥有!expression,在$bool 为假时拥有expression

我知道我可以:

$bool ? !expression : expression

但它有两次相同的表达......

【问题讨论】:

    标签: php boolean


    【解决方案1】:

    所以基本上你想通过测试如果$bool 为真或expression 为真,但不是两者兼而有之。异或的教科书定义:

    if( $bool xor expression)
        // execute code
    

    【讨论】:

      【解决方案2】:
      if (expression == $bool)
      

      或许

      if (expression != $bool)
      

      【讨论】:

        【解决方案3】:

        我不确定我是否理解你,但你可以将表达式的结果存储在变量中:

        <?php
            $bool = false;
            $result = (1 == 2 || 1 == 1);
            if ($bool && !$result) {
            //do stuff
            echo '1';
            } else if (!$bool && $result) {
            //other stuff
            echo '2';
            } else {
            echo '3';
            }
        ?>
        

        或许

        $bool = false;
        $result = (1 == 2 || 1 == 1);
        $newVar = ($bool ? !$result : $result);
        

        或者使用 eval 但它有点棘手。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-04-30
          • 2014-01-16
          • 2017-02-05
          • 1970-01-01
          • 2010-11-16
          • 2023-01-05
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多