PHP:对 if else 语句感到困惑 - 相同的逻辑或错误的理解



我真的很困惑,因为我有一个 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 = ""; }

在语句 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))

无论。

最新更新