【问题标题】:PHP IF-Statement doesnt work like i want [duplicate]PHP IF-Statement 不像我想要的那样工作[重复]
【发布时间】:2016-06-11 00:53:25
【问题描述】:

我最近开始写一个学习html/css/js/php的网站。

我使用引导程序设计了网站的前端。 现在我正在尝试使用 PHP 验证一些输入。

我试过了:

    if ($durationHH <= 0 && $durationMM <= 0)
    {
        echo "DurationHH and DurationMM can not be both zero at the same time.";    
        echo "<br>";
        echo "DurationHH and DurationMM can not be smaller than 0.";       
    }
    elseif (empty($durationHH) || empty($durationMM))
    {       
        echo "DurationHH and DurationMM can not be empty.";
        echo "<br>";
    }
    else
    {
        echo $_POST["durationMM"];
        echo ":";
        echo $_POST["durationHH"];
    }

我通过为 durationHH 和 durationMM 输入一些值来测试验证。

到目前为止一切正常,除了这两种情况:

durationMM = 0 AND durationHH = 任意值

&&

durationHH= 0 AND durationMM = 任意值。

在这两种情况下,我得到输出:“DurationHH 和 DurationMM 不能为空。”

这是如何/为什么会发生的?

【问题讨论】:

  • 0 在这种情况下为空,因此请更改为 $durationHH == '' || $durationMM == '' 或者您可以使用 is_numeric
  • 这个SO question 可能会给你一些想法
  • 感谢您的回复。它现在工作^^

标签: php if-statement logic logical-operators boolean-logic


【解决方案1】:

如果durationHH和durationMM总是要求为整数或数字,请使用! is_numeric()检查。

【讨论】:

    猜你喜欢
    • 2019-04-19
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-16
    • 1970-01-01
    相关资源
    最近更新 更多