0

我目前正在使用 PHP 5.2.9。有没有办法以更容易阅读和更好组织的方式重构这段代码?

  if ($is_read_only == true) {
      echo ($affiliate['affiliate_gender'] == 'm') ? MALE : FEMALE;
  } elseif ($error == true) {
      if ($entry_gender_error == true) {
            echo tep_draw_radio_field('a_gender', 'm', $male) . '  ' . MALE . '  ' . tep_draw_radio_field('a_gender', 'f', $female) . '  ' . FEMALE . ' ' . ENTRY_GENDER_ERROR;
      } else {
            echo ($a_gender == 'm') ? MALE : FEMALE;
            echo tep_draw_hidden_field('a_gender');
      }
  } else {
      echo tep_draw_radio_field('a_gender', 'm', $male) . '  ' . MALE . '  ' . tep_draw_radio_field('a_gender', 'f', $female) . '  ' . FEMALE . ' ' . ENTRY_GENDER_TEXT;
  }
4

4 回答 4

4

我不知道你为什么希望它在更少的行中,但你去:

echo $is_read_only === true
?   $affiliate['affiliate_gender'] === 'm' ? MALE : FEMALE
:   $error === true
?   $entry_gender_error == true
?   tep_draw_radio_field('a_gender', 'm', $male) . '  ' . MALE . '  ' . tep_draw_radio_field('a_gender', 'f', $female) . '  ' . FEMALE . ' ' . ENTRY_GENDER_ERROR
:   ($a_gender === 'm' ? MALE : FEMALE) . tep_draw_hidden_field('a_gender')
:   tep_draw_radio_field('a_gender', 'm', $male) . '  ' . MALE . '  ' . tep_draw_radio_field('a_gender', 'f', $female) . '  ' . FEMALE . ' ' . ENTRY_GENDER_TEXT;

它肯定不是更具可读性。可读性和压缩似乎相互矛盾。

编辑:

对于其中的挑战,我走得更远。

echo $is_read_only
?   $affiliate['affiliate_gender'] === 'm' ? MALE : FEMALE
:   $error && !$entry_gender_error
?   ($a_gender === 'm' ? MALE : FEMALE) . tep_draw_hidden_field('a_gender')
:   tep_draw_radio_field('a_gender', 'm', $male) . '  ' . MALE . '  ' .
    tep_draw_radio_field('a_gender', 'f', $female) . '  ' . FEMALE . ' ' .
    ($error ? ENTRY_GENDER_ERROR : ENTRY_GENDER_TEXT);

这是我作为人类所能做的最糟糕的事情。

愿上帝怜悯我的灵魂:)

于 2012-11-06T22:45:19.577 回答
3

您可以更改if ($is_read_only == true)if ($is_read_only)以及其他 if 语句,因为放置 '== true'是多余且不必要的

于 2012-11-06T22:43:46.947 回答
1

我更喜欢这样:

if ($is_read_only)
    echo ($affiliate['affiliate_gender'] == 'm') ? MALE : FEMALE;
elseif ($error)
    if ($entry_gender_error)
        echo tep_draw_radio_field('a_gender', 'm', $male) . '  ' . MALE.
             '  ' . tep_draw_radio_field('a_gender', 'f', $female) .  
             '  ' . FEMALE . ' ' . ENTRY_GENDER_ERROR;
    else
        echo ($a_gender == 'm') ? MALE : FEMALE , tep_draw_hidden_field('a_gender');
else
    echo tep_draw_radio_field('a_gender', 'm', $male) . '  ' . MALE .
         '  ' . tep_draw_radio_field('a_gender', 'f', $female) .
         '  ' . FEMALE . ' ' . ENTRY_GENDER_TEXT;

我避免使用太长的回声句子,以提高可读性。很多 {s 和 } 的结果也很混乱。

于 2012-11-06T22:57:47.797 回答
1

这取决于您所说的“压缩”到底是什么意思?

由于您尚未澄清,因此您得到了基本的答复。

删除空格:

如果您希望以某种方式加速您的代码,请不要打扰。压缩(缩小/删除空间)一个php文件不会加快它的执行时间。PHP 每次都会读取文件,将其编译为字节码并运行它。这样做会让你的眼睛和你的同事一样流血。只是不要这样做!

为了可读性/可用性:

然后,您最好将代码/类/函数相应地划分为有意义且易于阅读的块。这不仅会帮助您,还会帮助与您一起工作的人。使用设置缩进级别、间距/括号/嵌套样式等。

对于代码性能:

有无数种方法可以在视觉形式和代码性能方面改进代码(类/函数/循环/连接/语句) - 可以使用各种工具对其进行分析/测试。

希望这有助于作为一个指针。

于 2012-11-06T22:59:32.350 回答