我有一个IF语句,我需要检查两个变量,然后在其中一个变量为false时执行操作。
我知道我可以使用OR(||)语句,但由于某种原因它无效。我正在学习PHP,所以它可能代表我的语法错误。
如果我只用一个(或者)变量创建if语句,它可以正常工作:
<?php if ($var1 == false) { do whatever...} ?>
然而,当我尝试检查两个时,似乎没有检查任何变量。我尝试了不同的语法变体但没有任何作用:
<?php if (($var1 == false) || ($var2 == false)) { do whatever...} ?>
<?php if (($var1 == false) OR ($var2 == false)) { do whatever...} ?>
<?php if ($var1 == false || $var2 == false) { do whatever...} ?>
<?php if ($var1 == false OR $var2 == false) { do whatever...} ?>
有人可以指出我的错误是什么吗?
谢谢!
编辑:包括实际代码。
<?php $member = $members_template->member; $bpmember = bp_get_member_user_id(); ?>
<?php $membersearchinclude = xprofile_get_field_data( 'Exclude yourself from website search results?', $bpmember ); ?>
<?php $adminsearchinclude = xprofile_get_field_data( 'Exclude From Search Results', $bpmember ); ?>
<?php if (($adminsearchinclude == false) || ($membersearchinclude == false)) { ?>
这是从BuddyPress中的两个不同复选框中提取xprofile字段状态。我正在检查其中一个复选框是否为false,然后执行代码。
答案 0 :(得分:1)
我设法解决了这个问题。 似乎我的逻辑运营商需要改变:
if ((!$adminsearchexclude) && (!$membersearchexclude))
我确信如果我发布了整个代码,你就会得到它。这是一个敏感的项目,不幸的是,发布整个代码不是一个选项。
非常感谢大家特别为@ ChrisO'Kelly创建了var转储片段。你让我思考正确的方向,现在我的武器库中有了一个新工具:)
谢谢大家!
答案 1 :(得分:0)
我不确定是什么导致它无法按预期运行,因为从我看来它全部有效。尝试发布您的代码,以便我们了解整个逻辑。
尝试使用严格的比较。
$var1 = 0;
$var2 = 1;
// The echo will not be executed
if ($var1 === false || $var2 === false) {
echo "Strict comparison\n";
}
// The echo will be executed
if ($var1 == false || $var2 == false) {
echo "No strict comparison\n";
}
参考文献:
http://php.net/manual/en/language.operators.logical.php http://php.net/manual/en/language.operators.comparison.php