仅在某些条件不为真时才执行代码

时间:2012-07-12 16:27:39

标签: php logic

在PHP中,我如何执行即将发布的代码(例如,不显示在div中),如果有三个条件为真,另一方面,如果 只有在这3个条件中的任何一个都是假的时候才会出现?

例如,与我想要做的相反,为了 执行代码,如果三个条件确实为真,我做这样的事情:

<?php
$var1 = 'true';
$var2 = 'true';
$var3 = 'false';
?>

<?php if ( $var1 == 'true' and $var2 == 'true' and $var3 == 'true' ) : ?>
    <?php echo 'All 3 are true, will execute code.'; ?>
<?php else : ?>
    <?php echo 'Not all 3 are true, will not execute code.'; ?>
<?php endif; ?>

结果:并非所有三个都是真的,因此代码不会被执行。

希望我被理解, 提前谢谢。

6 个答案:

答案 0 :(得分:1)

您可以使用DeMorgan定律来反转整个if条款的真实性:

if( $var1 != true or $var2 != true or $var3 != true ){
    //execute code
}

或者您可以使用!运算符执行此操作,该运算符在逻辑上完全等效:

if( !( $var1 == true and $var2 == true and $var3 == true ) ){
    //execute code
}

或者您可以反转您检查的值,这在逻辑上也是等效的:

if( $var1 == false or $var2 == false or $var3 == false ){
    //execute code
}

所有这些都将以相同的方式工作。如果你仔细研究它们,你也可能会理解为什么它们都以同样的方式工作,这将有助于你将来设计这些条款!

答案 1 :(得分:1)

if (!($x=='x' && $y=='y' && $z=='z')){
// do if matches
}else {
//do otherwise
}
你刚刚放了一个!签名如if(!())

答案 2 :(得分:1)

最简单的方法可能是使用!(非)运算符,如下所示:

<?php if (!( $var1 == 'true' and $var2 == 'true' and $var3 == 'true' ))  ?>
    <?php echo 'Not all 3 are true, will execute code.'; ?>
<?php else : ?>
    <?php echo 'All 3 are true, will execute code.'; ?>
<?php endif; ?>

或者“打开”!(非)运算符:

<?php if $var1 != 'true' or $var2 != 'true' or $var3 != 'true'   ?>
    <?php echo 'Not all 3 are true, will execute code.'; ?>
<?php else : ?>
    <?php echo 'All 3 are true, will execute code.'; ?>
<?php endif; ?>

答案 3 :(得分:0)

有一个!=运算符与==运算符相反,如果两个不相等则返回false。还有一个!运算符,它返回它正在修改的东西的相反布尔值,例如

!($var1 == 'true' or $var2 == 'true')
如果$var1$var2都是'true',则

返回false。

此外,您不需要为每个PHP行打开和关闭<?php ?>标记。事实上,不要这样做,这使得读取代码非常烦人。只需执行<?php,然后启动php,?>即可。

答案 4 :(得分:0)

<?php
$var1 = true;  // IF these are really BOOLEAN values
$var2 = true; 
$var3 = false;
?>

<?php if ( $var1 && $var2 && $var3 ) : ?>
    <?php echo 'All 3 are true, will execute code.'; ?>
<?php else : ?>
    <?php echo 'Not all 3 are true, will not execute code.'; ?>
<?php endif; ?>

答案 5 :(得分:0)

试试这个:

<?php if($var1 == 'true' and $var2 == 'true' and $var3 == 'true'): ?>
   <?php echo 'All 3 are true, will execute code.'; ?>
<?php elseif($var1 != 'true' and $var2 != 'true' and $var3 != 'true'): ?>
   <?php echo 'Not all 3 are true, will not execute code.'; ?>
<?php endif; ?>