Php 测试两个条件中的任何一个是否为真
我试图使用下面的代码测试两个变量中的任何一个是否为真,但我发现即使变量为空,代码也总是返回真条件。我这样做是否正确,或者变量是否始终为真 提前感谢你的帮助Php 测试两个条件中的任何一个是否为真,php,Php,我试图使用下面的代码测试两个变量中的任何一个是否为真,但我发现即使变量为空,代码也总是返回真条件。我这样做是否正确,或者变量是否始终为真 提前感谢你的帮助 <?php if (($gogo_team_member_twitter !== true) or ($gogo_team_member_facebook !== true)) { echo('class="amb-with-socal"'); } else echo('class="amb-without-socal"'); ?
<?php
if (($gogo_team_member_twitter !== true) or ($gogo_team_member_facebook !== true)) {
echo('class="amb-with-socal"');
}
else echo('class="amb-without-socal"');
?>
如果您需要“测试两个条件中的任何一个是否为真”,那么您的条件应该如下所示:
if ($gogo_team_member_twitter === true || $gogo_team_member_facebook === true)
或者只是
if ($gogo_team_member_twitter || $gogo_team_member_facebook)
如果您不需要严格比较如果您需要“测试两个条件中的任何一个是否为真”,那么您的条件应该如下所示:
if ($gogo_team_member_twitter === true || $gogo_team_member_facebook === true)
或者只是
if ($gogo_team_member_twitter || $gogo_team_member_facebook)
如果你不需要严格的比较,你的想法是正确的,但是你正在检查变量是否为真。你肯定想看看这两种说法是否属实
另外,尝试使用|
和&
而不是或和和和,因为它们具有更高的优先级。您的想法是正确的,但您正在检查变量是否为真。你肯定想看看这两种说法是否属实
另外,尝试使用|
和&
而不是或和和,因为它们具有更高的优先级。我只想这样写
if ($gogo_team_member_twitter || $gogo_team_member_facebook)
我只会写信
if ($gogo_team_member_twitter || $gogo_team_member_facebook)
那么,您正在检查这两个变量中是否有一个不完全等于true
如果变量为空,则它不是真的,因此满足条件。那么,您正在检查这两个变量中是否有一个不完全等于真的
如果变量为空,则不为真,因此满足条件。此外,在处理此类负数时,可以使用“and”
此外,在处理像这样的否定词时,你可以使用“and”
在大多数情况下,==true
是多余的,只会降低代码的可读性。@Matti Virkkunen:是的,这就是为什么我在;-)之后添加了注释的原因你能不能在不同的比较上再详细一点?谢谢你的帮助。@toomanyairmiles:当然,我想他想说的是,如果你做了if(strpos('abc','a'))
来查看字符串是否包含“a”,你就不会得到你期望的结果。在大多数情况下==true
是多余的,只会降低代码的可读性。@Matti Virkkunen:yep,这就是为什么我在;-)之后添加了一个注释你能不能在不同的比较上再详细一点?谢谢你的帮助。@toomanyairmiles:当然,我想他想说的是,如果你做了if(strpos('abc','a'))
来查看字符串是否包含“a”,你就不会得到你期望的结果。如果你回显if语句之前的值是什么?如果你回显if语句之前的值是什么?