Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php修改表达式返回值和一个布尔变量_Php_Boolean - Fatal编程技术网

php修改表达式返回值和一个布尔变量

php修改表达式返回值和一个布尔变量,php,boolean,Php,Boolean,这听起来可能很幼稚, 但是在PHP中,是否可以用一个布尔值修改表达式的结果 例如: if(expression) //execute code 现在,我该怎么做 if(!expression) //execute code 用另一个布尔值的控制 比如: 所以基本上我想拥有这个!$bool为true时的表达式和$bool为false时的表达式 我知道我可以: $bool ? !expression : expression 但它有两次相同的表达 if (expression

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

例如:

if(expression)
     //execute code
现在,我该怎么做

if(!expression)
    //execute code
用另一个布尔值的控制

比如:

所以基本上我想拥有这个!$bool为true时的表达式和$bool为false时的表达式

我知道我可以:

$bool ? !expression : expression
但它有两次相同的表达

if (expression == $bool)
或许

if (expression != $bool)
$bool = false;
$result = (1 == 2 || 1 == 1);
$newVar = ($bool ? !$result : $result);
或许

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

因此,如果$bool为true或expression为true,则基本上您希望通过测试,但不能同时通过这两个测试。XOR的教科书定义:

if( $bool xor expression)
    // execute code

因此,如果$bool为true或expression为true,则基本上您希望通过测试,但不能同时通过这两个测试。XOR的教科书定义:

if( $bool xor expression)
    // execute code

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

<?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';
    }
?>

或者使用eval,但这有点棘手。

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

<?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';
    }
?>
或者使用eval,但这有点棘手