如何使用switch语句优化多个if-else语句?

时间:2020-08-04 05:29:10

标签: php-7 optimization coding-style

我正在编写代码,以根据亚马逊,沃尔玛等渠道将审阅电子邮件添加到队列中。我这样做的方式如下。我想知道代码是否可以通过其他方式(例如使用Switch或其他方式)进行优化,这样我就不必使用多个if-else语句。

    if ($my_order->pay_method == AMAZONSTORE) {
        $emailQueue = new Luxe_EmailQueue();
        // $emailQueue->replace_or_add(EMAIL_REVIEW_MAIL1, $customerData->email, $subject, $body, $send_date_php, $my_order->id);
        // Temporary adding bcc
        $emailQueue->replace_or_add(EMAIL_REVIEW_MAIL1, $customerData->email, $subject, $body, $send_date_php, $my_order->id, null, "", "berkell990@gmail.com");
        $emailQueue->save();
        unset($emailQueue);

        // Add second (reminder) email also, for 7 days after the first email.
        $emailQueue = new Luxe_EmailQueue();
        // $emailQueue->replace_or_add(EMAIL_REVIEW_MAIL2, $customerData->email, $subject,
        // $smarty->fetch('amazon_store_review_email2.tpl'), $email_dispatch_dates['second_review_email_date_php'], $my_order->id);
        // Temporary adding bcc
        $emailQueue->replace_or_add(EMAIL_REVIEW_MAIL2, $customerData->email, $subject,
            $smarty->fetch('amazon_store_review_email2.tpl'), $email_dispatch_dates['second_review_email_date_php'], $my_order->id, null, "", "berkell990@gmail.com");
        $emailQueue->save();
        unset($emailQueue);
    } elseif ($my_order->pay_method == PMM) {
        # code...
    } elseif ($my_order->pay_method == RP) {
        # code...
    } elseif ($my_order->pay_method == WALMART) {
        # code...
    } elseif ($my_order->pay_method == EBAY) {
        # code...
    } else {
        // NO payment Method matched.
    }

1 个答案:

答案 0 :(得分:1)

尝试这种方式

switch ($my_order->pay_method) {
  case "AMAZONSTORE":
    # code...
    break;
  case "PMM":
    # code...
    break;
  case "RP":
    # code...
    break;
  case "WALMART":
    # code...
    break;
  case "WALMART":
    # code...
    break;
  default:
    // NO payment Method matched.
}
相关问题