2017-04-21 97 views
-2

我知道很多這樣的問題,或者可以使用開關,但我的代碼是不同的,我在PHP中成爲begginer。優化太多,如果其他條件

我如果ELSEIF代碼:

<?php if (get_field('num_field') == '1'): ?> 
    <li><a href="<?php the_field('dl_link1'); ?>"><?php the_field('t_dl_link1'); ?></a></li> 
<?php elseif (get_field('num_field') == '2'): ?> 
    <li><a href="<?php the_field('dl_link1'); ?>"><?php the_field('t_dl_link1'); ?></a></li> 
    <li><a href="<?php the_field('dl_link2'); ?>"><?php the_field('t_dl_link2'); ?></a></li> 
<?php elseif (get_field('num_field') == '3'): ?> 
    <li><a href="<?php the_field('dl_link1'); ?>"><?php the_field('t_dl_link1'); ?></a></li> 
    <li><a href="<?php the_field('dl_link2'); ?>"><?php the_field('t_dl_link2'); ?></a></li> 
    <li><a href="<?php the_field('dl_link3'); ?>"><?php the_field('t_dl_link3'); ?></a></li> 
<?php elseif (get_field('num_field') == '4'): ?> 
    <li><a href="<?php the_field('dl_link1'); ?>"><?php the_field('t_dl_link1'); ?></a></li> 
    <li><a href="<?php the_field('dl_link2'); ?>"><?php the_field('t_dl_link2'); ?></a></li> 
    <li><a href="<?php the_field('dl_link3'); ?>"><?php the_field('t_dl_link3'); ?></a></li> 
    <li><a href="<?php the_field('dl_link4'); ?>"><?php the_field('t_dl_link4'); ?></a></li> 
<?php elseif (get_field('num_field') == '5'): ?> 
    <li><a href="<?php the_field('dl_link1'); ?>"><?php the_field('t_dl_link1'); ?></a></li> 
    <li><a href="<?php the_field('dl_link2'); ?>"><?php the_field('t_dl_link2'); ?></a></li> 
    <li><a href="<?php the_field('dl_link3'); ?>"><?php the_field('t_dl_link3'); ?></a></li> 
    <li><a href="<?php the_field('dl_link4'); ?>"><?php the_field('t_dl_link4'); ?></a></li> 
    <li><a href="<?php the_field('dl_link5'); ?>"><?php the_field('t_dl_link5'); ?></a></li> 
<?php else: ?> 
<?php endif; ?> 

如何優化代碼?

感謝

+1

你可能都沒機會shitstorm張貼屬於代碼審查一個問題.. – Yolo

+1

是否喜歡你的代碼工作現在寫的?如果是這樣,你的問題是在這裏脫離主題,應該在[codereview.se]詢問。如果它不*按照現在寫的那樣工作,那麼[編輯]你的問題,解釋代碼應該做什麼以及它如何不按預期工作,並且詢問與代碼有關的特定問題。 –

+1

「_How Optimize this code?_」在這裏非常偏離主題,但有許多用戶認爲他們可以在他們想要的時候打破SO規則,進一步鼓勵這些問題。 –

回答

3

使用循環。

<?php 
$end = get_field('num_field'); 
for ($i = 1; $i <= $end; $i++) { ?> 
    <li><a href="<?php the_field('dl_link' . $i); ?>"><?php the_field('dl_link' . $i); ?></a></li> 
<?php 
} 
-1
$num_field = get_field('num_field'); 

for($i=1; $i < $num_field; $i++) { 
    echo '<li><a href="'.the_field('dl_link'.$i).'">'.the_field('t_dl_link'.$i).'</a></li>'; 
} 
+1

請編輯您的答案以包含一些解釋。僅有代碼的答案對未來SO讀者的教育很少。您的回答是在低質量的審覈隊列中。 – mickmackusa

+1

因爲接受的答案充滿了解釋。去找它,然後刪除它。 – Yolo

0
$a = get_field('num_field'); 
if($a => 1 && $a <= 5) { 
    for($i = 1; $i <= $a; $i++) { 
    ?> 
     <li><a href="<?php the_field('dl_link'.$i); ?>"><?php the_field('t_dl_link'.$i); ?></a></li> 
    <?php 
    } 
}