我有一个IF语句,我需要检查两个变量,如果其中一个变量为假,则执行操作。
我知道我可以使用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字段状态。我正在检查其中一个复选框是否为假,然后执行代码。
我已经设法解决了这个问题。似乎我的逻辑运算符需要更改:
if ((!$adminsearchexclude) && (!$membersearchexclude))
我敢肯定,如果我把整个代码贴出来,你们中的一个会得到它。这是一个敏感的项目,不幸的是,目前不能发布整个代码。
非常感谢每个人,特别是@ChrisO'Kelly的var转储片段。你让我想到了正确的方向,我现在有了一个新的工具在我的武器库:)
谢谢大家!!我不确定是什么原因导致它不像预期的那样运行,因为从我的观点来看,它都是有效的。试着发布你的代码,让我们知道整个逻辑。
尽量使用严格比较。
$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.phphttp://php.net/manual/en/language.operators.comparison.php