Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.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_Logic - Fatal编程技术网

Php 仅当某些条件不正确时才执行代码

Php 仅当某些条件不正确时才执行代码,php,logic,Php,Logic,在PHP中,如果有三个条件为true,我如何执行后续代码(例如不显示在div中),而另一方面,如果和只有在这三个条件中的任何一个为false时才执行它 例如,我想做的相反的事情是,为了执行代码,如果这三个条件确实成立,我会这样做: <?php $var1 = 'true'; $var2 = 'true'; $var3 = 'false'; ?> <?php if ( $var1 == 'true' and $var2 == 'true' and $var3 == 'true'

在PHP中,如果有三个条件为true,我如何执行后续代码(例如不显示在div中),而另一方面,如果只有在这三个条件中的任何一个为false时才执行它

例如,我想做的相反的事情是,为了执行代码,如果这三个条件确实成立,我会这样做:

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

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

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

这里有一个
=
运算符与
=
运算符相反,如果两者不相等,则返回false。还有一个
运算符,例如

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


此外,您不需要为每一行php打开和关闭
标记。事实上,不要这样做,这会让阅读代码变得非常烦人。在你结束的地方做一个

有一个
=
运算符与
=
运算符相反,如果两者不相等,则返回false。还有一个
运算符,例如

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


此外,您不需要为每一行php打开和关闭
标记。事实上,不要这样做,这会让阅读代码变得非常烦人。只要在你结束的地方做一个

你可以使用德摩根定律来颠倒整个
的真理,如果
子句:

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
}
或者,您可以反转检查的值,这在逻辑上也是等效的:

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

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

你可以使用德摩根定律来颠倒你的整个
if
子句的真相:

if( $var1 != true or $var2 != true or $var3 != true ){
    //execute code
}
if (!($x=='x' && $y=='y' && $z=='z')){
// do if matches
}else {
//do otherwise
}
或者你也可以用
来实现这一点运算符,在逻辑上完全等效:

if( !( $var1 == true and $var2 == true and $var3 == true ) ){
    //execute code
}
if( $var1 == false or $var2 == false or $var3 == false ){
    //execute code
}
或者,您可以反转检查的值,这在逻辑上也是等效的:

if( !( $var1 == true and $var2 == true and $var3 == true ) ){
    //execute code
}
if( $var1 == false or $var2 == false or $var3 == false ){
    //execute code
}
所有这些都将以同样的方式工作。如果你仔细研究它们,你也会明白为什么它们都以同样的方式工作,这将有助于你将来设计这些条款

if (!($x=='x' && $y=='y' && $z=='z')){
// do if matches
}else {
//do otherwise
}
你只是放了一把!像if一样签名(!())


你只是放了一把!像if(!())这样的符号。

最容易的事情可能是使用
(非)运算符如下所示:

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

试试这个:

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


这不是php,而是逻辑为什么要使用字符串而不是布尔值?澄清一下,如果任何变量为false,代码应该执行,如果所有变量都为true,则不应该执行?如果中间的场景既不满足这两个标准,又如何?还有,有什么原因让你使用true和false作为字符串值(
'true'
)而不是Boolean(
true
)?这不是php,这是逻辑为什么你使用字符串而不是Boolean?为了澄清,如果任何变量为false,代码应该执行,如果所有变量都为true,代码不应该执行?如果中间的场景既不满足这两个标准,又如何?你为什么要用真和假作为字符串值(
'true'
)而不是布尔值(
true
)?我当时很忙,因为我没想到这么快就能得到这么多答案,这是我在这里的第一篇文章。不管怎样,if(!())成功了,谢谢大家的回答。事实上,当我尝试的时候我当时很忙,因为我没想到这么快就能得到这么多答案,这是我在这里的第一篇帖子。不管怎样,if(!())成功了,谢谢大家的回答。事实上,当我尝试的时候而不是==它的行为不够逻辑。这是一个代码看起来很烦人的问题吗?还是有不应该这样做的严重原因?谢谢你的帮助。正如我所说,我使用(!())技巧成功了:-)这是一个代码看起来很烦人的问题吗?还是有不应该这样做的严重原因?谢谢你的帮助。正如我所说,我使用(!())技巧成功了:-)@user1521363哦,是的,谢谢。这是缺少的括号。现在更正。@user1521363哦,是的,谢谢。这是缺少的括号。现在更正它。