这可能听起来很幼稚, 但在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
但它有两次相同的表达......
答案 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,但这有点棘手。