【问题标题】:If else statement - value greater or less than.. confusedIf else 语句 - 值大于或小于.. 混淆
【发布时间】:2014-03-30 21:43:55
【问题描述】:

我有一个非常简单的语句,检查一个值是否小于另一个,但是它不起作用,谁可以快速检查它?看到我对此完全视而不见。

$balance = $wallet->balance(); //3000
$loan = $wallet->loan(); // 5000
if (!$balance < $loan) { //Should be pretty straight forward...
    $wallet->updateBalance(Session::get('user'),$balance - 1000);
    $wallet->updateLoan(Session::get('user'),$loan - 1000);
    Redirect::to('bank.php');
} else {
    Redirect::to('bank.php');
}

当我运行此代码时,无论 $balance 是否更少,它都会删除 1000。如果我删除感叹号,它会立即重定向。

我真的不明白我做错了什么?

这是完整的脚本:

    <?php
require_once 'core/init.php';

if (Input::exists('get')) {

    if (Input::get('borrow')) {
        $wallet = new Wallet;
        if ($wallet->get(Session::get('user'))) {
            $balance = $wallet->balance();
            $loan = $wallet->loan();
            $wallet->updateBalance(Session::get('user'),$balance + 1000);
            $wallet->updateLoan(Session::get('user'),$loan + 1000);
            Redirect::to('bank.php');
        }

    } else if (Input::get('repay')) {
        $wallet = new Wallet;
        if ($wallet->get(Session::get('user'))) {
            $balance = $wallet->balance();
            $loan = $wallet->loan();
            if ($balance < $loan) {
                $wallet->updateBalance(Session::get('user'),$balance - 1000);
                $wallet->updateLoan(Session::get('user'),$loan - 1000);
                Redirect::to('bank.php');
            } else {
                Redirect::to('bank.php');
            }

        }
    } else {
        Redirect::to('bank.php');
    }

} else {
    Redirect::to('bank.php');
}

所有重定向都是临时的。非常感谢您的帮助

【问题讨论】:

  • if (!($balance &lt; $loan))

标签: php if-statement


【解决方案1】:

我认为问题在于如何在您的 if 条件中应用运算符。代替if (!$balance &lt; $loan),试试if (!($balance &lt; $loan))if ($balance &gt;= $loan)

问题部分是因为 PHP 如何在内部表示类型,部分是因为运算符优先级。首先应用否定运算符。因为bools在PHP中是用整数表示的,所以这个表达式的结果是FALSE,相当于0

【讨论】:

  • !(a&lt;b) 的反义词是 a&gt;=b
  • 谢谢杰森!我不敢相信我没有看到那个。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-03
  • 1970-01-01
  • 2021-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多