PHP效率,是否使用循环?(改进旧项目)


PHP efficiency, to use loops or not? (improving an old project)

我怀疑它是否会对性能产生"巨大"影响,但我想知道 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);之类的东西,包括上述内容。

我只是想确保移动到"最高级"的例子要么更好,要么只是一种更好/更干净的实践方式。我不想继续前进,我认为看起来更干净,但由于某种原因我看不到

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

简答

DRY(不要重复自己)是你应该更害怕的原则,而不是"性能"。因此,您应该使用循环。

长答案

考虑一个(可怕的)时刻让第二个代码;一长串相同的代码一遍又一遍地重复大约20次。假设你想再添加 10 行:第一个你只需更改开头的循环(1 行),第二个你再创建 100 行代码。然后假设你想更改每个代码的一点:第二个你必须编辑该代码 30 次,第一个......好吧,我想你明白了这个概念。