一种在 PHP 中编写大型 elseif 语句的简单方法


A simple way to write large elseif statements in PHP

>我正在从电子邮件表单中获取帖子值,并将所有选项值设置为数字,并尝试将它们转换为实际字符串以通过电子邮件发送。 我需要使此代码更易于使用。

if ($subject == "1") {
$sub = "General Questions"; 
} elseif($subject == "2") {
$sub = "Membership";
} elseif($subject == "3") {
    $sub = "Club Fees";
} elseif($subject == "4") {
    $sub = "Proshop & Lessons";
} elseif($subject == "5") {
    $sub = "Events"; 
} elseif($subject == "6") {
    $sub == "Leagues & Programs";
} elseif($subject == "7") {
    $sub == "Resturant & Bar";
};

也许我可以将value=''设置为实际值并一起跳过这部分。

为什么不做一个关联数组呢?

$subs = array(
  1 => 'General Questions',
  2 => 'Membership',
  3 => 'Club Fees',
  4 => 'Proshop & Lessons',
  // others.
);
$sub = isset($subs[$subject]) ? $subs[$subject] : 'Default Value';

重写的一种方法是使用 PHP 中的 switch 语句。您可以在此处阅读有关它的更多信息。

使用 switch 语句,或将潜在结果映射到其各自的值:

switch ( $subject ) {
  case 1:
    $sub = 'foo';
    break;
  case 2:
    $sub = 'bar';
    break;
}

$values = array( "Foo", "bar" );
$sub = $values[ --$subject ];

试试这个

<?php
switch ($subject)
{
case "1":
  $sub = "General Questions";
  break;
case "2":
  $sub = "Membership";
  break;
case "3":
  $sub = "Club Fees";
  break;
case "4":
  $sub = "Proshop &amp; Lessons";
  break;
case "5":
  $sub = "Events";
  break;
case "6":
  $sub = "Leagues &amp; Programs";
  break;
case "6":
  $sub = "Resturant &amp; Bar";
  break;
default:
  $sub = "";
}
?>