PHP IF语句 - 两个变量不起作用

时间:2016-09-30 02:50:28

标签: php if-statement

我有一个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,然后执行代码。

2 个答案:

答案 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