0

我怀疑它会对性能产生“巨大”影响,但我想知道 PHP 循环是否比使用 PHP 变量吐出 HTML 更好?

一个非常简单的例子是这样的:

这是“更有效”:

<?php
$i = 0;
$settings = array(
    1   => 'var_a|var_one',
    2   => 'var_b|var_two',
    3   => 'var_c|var_two',
    4   => 'var_d|var_three',
);
foreach($settings as $setting) {
    $e = explode('|', $setting);
    if(get_option($e[0]) !== ''){ ?>
        <li class="radio">
            <h2><?php print($e[1]); ?></h2>
            <input name="radio_ask" type="radio" value="<?php print($e[0]); ?>" id="radio_<?php print($i); ?>" tabindex="<?php print($i); ?>" onclick="this.setAttribute('checked', 'checked'); this.checked = true;">
        </li>
    <?php }
} 
?>

或者

<?php 
if(get_option('var_a') !== ''){ ?>
    <li class="radio">
        <h2><?php print( get_option('var_one')); ?></h2>
        <input name="radio_ask" type="radio" value="<?php print( get_option('var_a')); ?>" id="radio_1" tabindex="1" onclick="this.setAttribute('checked', 'checked'); this.checked = true;">
    </li>
}
if(get_option('var_b') !== ''){ ?>
    <li class="radio">
        <h2><?php print( get_option('var_two')); ?></h2>
        <input name="radio_ask" type="radio" value="<?php print( get_option('var_b')); ?>" id="radio_2" tabindex="2" onclick="this.setAttribute('checked', 'checked'); this.checked = true;">
    </li>
<?php } ?>
<?php 
    //etc. etc.
?>

这个问题的基础是我很久以前写了一些代码,从那时起我学到了很多东西。我想稍微清理一下。(诸如print($this); print($that);代替之print($this.$that);类的东西,包括上述内容。

我只是想确保移动到“最高”示例更好,或者只是一种更好/更清洁的做事方式。我不想继续做一些我认为看起来更干净的东西,但由于某种我看不到的原因很糟糕

编辑:对于代码的任何打嗝,我很抱歉,我当场写了它作为一个简单的例子

4

1 回答 1

5

简短的回答

DRY(不要重复自己)是您应该更害怕的原则,而不是“绩效”。因此,您应该使用循环。

长答案

考虑一个(可怕的)时刻来获得第二个代码;一长串相同的代码一遍又一遍地重复大约 20 次。假设您想再添加 10 行:第一个您只需更改开头的循环(1 行),第二个您创建大约 100 行代码。然后假设您想更改每个代码的一些内容:第二次您必须编辑该段代码 30 次,而第一次……我想您已经掌握了这个概念。

于 2013-01-23T01:39:20.100 回答