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语句之前的值是什么?