1

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

例如:

if(expression)
     //execute code

现在,我该怎么做?

if(!expression)
    //execute code

与另一个布尔值的控制?

像:

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

所以基本上我想要拥有!expression什么时候$bool是真的,expression什么时候 $bool 是假的

我知道我可以:

$bool ? !expression : expression

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

4

3 回答 3

2

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

if( $bool xor expression)
    // execute code
于 2012-08-21T16:26:26.373 回答
1
if (expression == $bool)

或许

if (expression != $bool)
于 2012-08-21T16:23:33.127 回答
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 但这有点棘手。

于 2012-08-21T16:34:05.913 回答