【问题标题】:PHP: confused about if else statement - same logic or wrong understanding?PHP:对 if else 语句感到困惑 - 相同的逻辑或错误的理解?
【发布时间】:2018-01-21 18:40:47
【问题描述】:

我真的很困惑,因为我有一个 if/else 语句,它在系统中第一次集成时有效,但在第二种情况下,我必须重写该函数。我的观点是,这两个陈述具有相同的逻辑?还是不行?

语句 1:在第一次集成代码时按预期工作,但在第二次集成时不正常(变量 ba_geschaeftszeichen 的字符串长度始终为零):

if (
  (isset($_POST['ba_geschaeftszeichen']) && ($kostentraeger == "sozialamt")) ||
  (isset($_POST['pk_vnr']) && ($kostentraeger == "pflegekasse"))
) {
  if (isset($_POST['ba_geschaeftszeichen']) && (strlen($_POST['ba_geschaeftszeichen']) > 0)) {
    $ba_geschaeftszeichen = $_POST['ba_geschaeftszeichen'];
  } else if (isset($_POST['pk_vnr']) && (strlen($_POST['pk_vnr']) > 0)) {
    $ba_geschaeftszeichen = $_POST['pk_vnr'];
  } else {
    $ba_geschaeftszeichen = "";
  }
} else { $ba_geschaeftszeichen = ""; }

声明 2:只有此代码在第二次集成时有效:

if (
  (isset($_POST['ba_geschaeftszeichen']) && ($kostentraeger == "sozialamt")) ||
  (isset($_POST['pk_vnr']) && ($kostentraeger == "pflegekasse"))
) {
  if (isset($_POST['ba_geschaeftszeichen']) && (strlen($_POST['ba_geschaeftszeichen']) > 0)) {
    $ba_geschaeftszeichen = $_POST['ba_geschaeftszeichen'];
  } else {
    $ba_geschaeftszeichen = "";
  }
  if (isset($_POST['pk_vnr']) && (strlen($_POST['pk_vnr']) > 0)) {
    $ba_geschaeftszeichen = $_POST['pk_vnr'];
  } else {
    $ba_geschaeftszeichen = "";
  }
} else { $ba_geschaeftszeichen = ""; }

【问题讨论】:

    标签: php if-statement logic


    【解决方案1】:

    在语句 1 中,您达到 if (isset($_POST['pk_vnr']) && (strlen($_POST['pk_vnr']) > 0))

    只有当

    if (isset($_POST['ba_geschaeftszeichen']) && (strlen($_POST['ba_geschaeftszeichen']) > 0))
    

    是假的。

    在语句 2 中,您达到了

    if (isset($_POST['pk_vnr']) && (strlen($_POST['pk_vnr']) > 0))
    

    不管。

    【讨论】:

    • 感谢@Steve的帮助,现在我明白了代码的逻辑,知道问题出在哪里了。
    猜你喜欢
    • 2011-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-02
    • 2018-11-13
    • 1970-01-01
    相关资源
    最近更新 更多