php使用一个boolean var修改表达式返回值

时间:2012-08-21 16:18:30

标签: php boolean

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

例如:

if(expression)
     //execute code

现在,我该怎么做?

if(!expression)
    //execute code

控制另一个布尔值?

像:

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

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

我知道我可以:

$bool ? !expression : expression

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

3 个答案:

答案 0 :(得分:2)

所以基本上你想要在$bool为真或expression为真时传递测试,但不是两者都是。 XOR的教科书定义:

if( $bool xor expression)
    // execute code

答案 1 :(得分:1)

if (expression == $bool)

或者

if (expression != $bool)

答案 2 :(得分:1)

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

<?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,但这有点棘手。