电子邮件始终采用“ if”路径,而不采用“ else if” /`else`路径

时间:2019-05-01 07:35:34

标签: php email if-statement

我的网站上有一个功能,您可以在这里购买东西。完成之后,您将收到一封电子邮件。除了一件事,一切都正常。我的代码中有一个if语句,但它始终采用if而不是else ifelse路径。

我在互联网上进行搜索,但找不到任何解决方案。我在else if中尝试了类似else if (isset empty($registrationInfo['serviceselectoptie'])else if (isset ($registrationInfo['serviceselectoptie'] === NULL)的其他操作,但这没用。

我的if语句

<?php
  $registrationInfo = $connect->select(
    "SELECT * FROM `registrationinfo` WHERE `orderId`= '".$order_id."' LIMIT 1"
  )->fetch();

  if (
    isset($registrationInfo['serviceselectoptie']) AND 
    isset($registrationInfo['serviceconsult'])
  ) { 
    $titellist = '<tr><td bgcolor="#DEDEDE" style="padding: 5px 5px 5px 5px;width:175px;">' 
      .$registrationInfo['serviceselectoptie'].':</td><td style="padding: 5px 5px 5px 5px;">'
      .$registrationInfo['serviceconsult'] .'</td></tr>'; 
  } else if (
    !isset($registrationInfo['serviceselectoptie']) AND
    isset($registrationInfo['serviceconsult'])
  ) {
    $titellist = '<tr><td bgcolor="#DEDEDE" style="padding: 5px 5px 5px 5px;width:175px;">'
     .'Bestelling:</td><td style="padding: 5px 5px 5px 5px;">'
     .$registrationInfo['serviceconsult'].'</td></tr>';
  } else { 
    $titellist = "";
  }
?>

我期望的是,如果$registrationInfo['serviceselectoptie']行为空(null),它将转到else if。我的实际输出是它采用了if路径,并且由于该行为空,所以它只会给出:

输出示例

example output

2 个答案:

答案 0 :(得分:3)

当您检查结果集中的详细信息时,您会发现它们将始终被设置,而您想要的是检查值是否为private function searchCompatibility() { $products = Products::all(); return view('sample', compact('products')); } ,因为您要确保存在虽然是一个值-您必须说empty()来检查它是否具有值...

!empty()

也将其应用于代码的其他部分。

答案 1 :(得分:0)

当数组中存在isset($registrationInfo['serviceselectoptie'])键并将其设置为空字符串或serviceselectoptie以外的其他值时,

NULL是正确的。

// php -a
// Interactive shell

> $test = ['a'=>2, 'b'=>null, 'c'=>''];

> echo isset($test['a']);
 1
> echo isset($test['b']);
> echo isset($test['c']);
1

更好的检查是使用empty函数。

// php -a
// Interactive shell

> $test = ['a'=>2, 'b'=>null, 'c'=>''];

> echo empty($test['a']);
> echo empty($test['b']);
1
> echo empty($test['c']);
1
> echo empty($test['d']); // non-existent key 
1
> echo empty(NULL['a']); // yes NULL can be indexed
1

这样,代码中的分支将如下所示:


if(
    !empty($registrationInfo['serviceselectoptie'])
    AND !empty($registrationInfo['serviceconsult'])) { 
    //... 

} 
else if(
    empty($registrationInfo['serviceselectoptie'])
    AND !empty($registrationInfo['serviceconsult'])) {
    //...
} 
else { 
    //... 
}