【问题标题】:PHP IF Statement - Two Variables Not WorkingPHP IF 语句 - 两个变量不起作用
【发布时间】:2016-09-30 02:50:27
【问题描述】:

我有一个 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 字段状态。我正在检查其中一个复选框是否为假,然后执行代码。

【问题讨论】:

  • 所有4个都是有效的ideone.com/6mccU7
  • 我是这么想的,但我想这可能是我不知道的其他事情。
  • 也许如果您分享您的真实代码,我们可以提供帮助
  • 尝试显示变量的值
  • 如果你在else 部分做了一个if else 声明,你可以检查$var1 和$var2 有哪些值。

标签: php if-statement


【解决方案1】:

我已经设法解决了这个问题。 看来我的逻辑运算符需要更改:

if ((!$adminsearchexclude) && (!$membersearchexclude))

我敢肯定,如果我发布了整个代码,你们中的任何一个人都会得到它。目前这是一个敏感项目,遗憾的是无法发布整个代码。

非常感谢为 var dump sn-ps 提供帮助的每个人,尤其是 @ChrisO'Kelly。你让我朝着正确的方向思考,现在我的武器库中有一个新工具:)

谢谢大家!!

【讨论】:

  • 好吧,如果你不知道 AND 和 OR 之间的区别,你会遇到麻烦
【解决方案2】:

我不确定是什么导致它无法按预期运行,因为在我看来它都是有效的。尝试发布您的代码,以便我们了解整个逻辑。

尽量使用严格比较。

$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

【讨论】:

  • 是的,我的错。我的声誉不足以发表评论以要求 OP 分享实际代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-16
  • 2015-07-06
  • 2011-01-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多