如果其他条件优化太多

时间:2017-04-21 21:51:52

标签: php if-statement optimization switch-statement conditional

我知道很多这样的问题,或者可以使用开关,但我的代码不同,我在php中更好。

我的if 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; ?>

如何优化此代码?

由于

3 个答案:

答案 0 :(得分: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 :(得分: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
    }
}

答案 2 :(得分:-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>';
}
相关问题