Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
学习如何重构PHP代码_Php - Fatal编程技术网

学习如何重构PHP代码

学习如何重构PHP代码,php,Php,目前我正在使用PHP5.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_ge

目前我正在使用PHP5.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;
  }

您可以将
if($is\u read\u only==true)
更改为
if($is\u read\u only)
以及其他if语句,因为放置“
==true”
是多余和不必要的

我不确定您为什么希望它的行数更少,但您可以这样做:

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;
它肯定不是更可读。可读性和压缩性似乎相互矛盾

编辑:

对于it方面的挑战,我更进一步了

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);
这是我作为一个人所能做的最糟糕的事情

愿上帝怜悯我的灵魂:)

我喜欢这样:

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和}的结果也是混乱的。

这取决于您所说的“压缩”的确切含义

因为你还没有澄清,所以你得到了一个基本的回答

删除空格:

如果您希望以某种方式加快代码的速度,请不要费心。压缩(缩小/删除)php文件不会加快其执行时间。PHP每次读取文件,将其编译成字节码并运行。这样做会让你和同事的眼睛流血。别这样

可读性/可用性:

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

对于代码性能:

有无数种方法可以改进代码(类/函数/循环/连接/语句),无论是在视觉形式上还是为了代码性能,都可以使用各种工具对其进行分析/测试


希望这能起到指导作用。

我想您的代码的格式更好?此外,您可能指的是重构,而不是压缩。有时,将代码分隔开使其更易于阅读,最大的帮助是对嵌套部分进行缩进。压缩通常会使其更难阅读。通过减少代码的行数,您希望获得什么好处?您可以从添加缩进开始。哦,天哪,我的眼睛在流血!让它停下来!英雄联盟我喜欢。迷惑敌人!:P+1确实是一件艺术品。简洁、自我记录、优雅。我现在正在考虑我一直使用的那些多余的换行符,但至少现在我看到了曙光!我向Nickhar道歉,我使用了错误的术语-基本上看类/函数的第三点(代码性能),而不是迷失在冗余的if-else中,等等。。。我想在改进/优化方面做得更好。谢谢你的帮助!在这种情况下,我在这里为您指出一个起点:。在这里,你可以问很多关于以这种或那种方式执行事情的问题,人们会做出回应!