2017-04-21 99 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 
    } 
}