![](/img/trans.png)
[英]Learning OOP in PHP, trying to refactor my code. Can't connect to database anymore
[英]Learning how to refactor PHP code
我目前正在使用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;
}
我不確定為什么要用更少的行數,但是在這里:
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);
作為人類,這是我最糟糕的事情。
願上帝憐憫我的靈魂:)
您可以將if ($is_read_only == true)
更改為if ($is_read_only)
以及其他if語句,因為放置' == true'
是多余且不必要的
我更喜歡這樣:
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每次都會讀取文件,將其編譯為字節碼並運行。 這樣做會使您和同事的眼睛流血。 只是不要這樣做!
為了提高可讀性/可用性:
然后,明智的做法是將代碼/類/功能相應地分成有意義且易於閱讀的塊。 這不僅會幫助您,還會與您一起工作的人。 使用設置的縮進級別,間距/括號/嵌套樣式等。
對於代碼性能:
為了可視化和出於代碼性能的考慮,有無數種方法可以改進代碼(類/函數/循環/連接/語句),可以使用多種工具進行配置/測試。
希望這對您有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.