【问题标题】:convert if/else to case switch for WordPress PHP将 if/else 转换为 WordPress PHP 的大小写切换
【发布时间】:2023-01-13 01:55:02
【问题描述】:

我有一个基于用户 ID 的 WordPress 的 if/else,但这最终将有 100 个部分,我被告知 CASE 有那么多选项更好。那么我如何使这个 CASE 而不是 IF/ELSE 呢?

function my_shortcode_function() {
  $current_user_id = get_current_user_id();
   if ($current_user_id == 5)
    return 'message for user 5 goes here';
   else if ($current_user_id == 6)
    return 'message for user 6 goes here';
   else if ($current_user_id == 7)
    return 'message for user 7 goes here';
   else
    return 'you do not have access to this page.'
}

【问题讨论】:

  • 您尝试了什么,什么没有按预期工作?
  • “更好”几乎总是主观的。还有match可以更简洁。但是,如果您不止有几个,尤其是超过 100 个,您可能需要考虑以某种方式将其移入数据库。如果不是这样,数组可能更易于管理。

标签: php wordpress if-statement switch-statement case


【解决方案1】:

您可以将 if/else 语句转换为 switch 语句,如下所示:

function my_shortcode_function() {
  $current_user_id = get_current_user_id();
  switch ($current_user_id) {
    case 5:
      return 'message for user 5 goes here';
    case 6:
      return 'message for user 6 goes here';
    case 7:
      return 'message for user 7 goes here';
    default:
      return 'you do not have access to this page.';
  }
}

switch 语句采用一个表达式,在本例中为 $current_user_id,并将其与每个 case 语句进行比较。找到匹配项后,将执行该 case 语句之后的代码。如果未找到匹配项,则执行默认语句之后的代码。 break 语句不是必需的,因为 return 语句将停止函数的执行。 您可以根据需要添加任意数量的 case 语句,并且随着条件数量的增加,这会更具可读性。

【讨论】:

    猜你喜欢
    • 2021-10-18
    • 2021-10-10
    • 2022-01-02
    • 1970-01-01
    • 2021-08-30
    • 2021-06-21
    • 1970-01-01
    • 2014-04-13
    • 2019-04-09
    相关资源
    最近更新 更多