0

在 PHP 中,如果三个条件为真,我怎么能执行即将出现的代码(例如不显示在 div 中),另一方面,当仅当这三个条件中的任何一个为假时才执行它?

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

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

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

希望我被理解,在此先感谢。

4

6 回答 6

1

您可以使用德摩根定律来反转整个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
}

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

于 2012-07-12T16:31:14.853 回答
1
if (!($x=='x' && $y=='y' && $z=='z')){
// do if matches
}else {
//do otherwise
}

你只要放一个!像 if(!()) 一样签名

于 2012-07-12T16:32:02.167 回答
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; ?>
于 2012-07-12T16:32:25.397 回答
0

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

!($var1 == 'true' or $var2 == 'true')

$var1如果两者都是,$var2则返回 false 'true'

此外,您不需要<?php ?>为每一行 php.ini 打开和关闭标签。事实上,不要这样做,它会使阅读您的代码非常烦人。只需做一个<?php你开始你的php和?>你结束的地方。

于 2012-07-12T16:30:53.163 回答
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; ?>
于 2012-07-12T16:34:42.667 回答
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; ?>
于 2012-07-12T16:40:31.010 回答