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

时间:2013-01-23 01:36:42

标签: php

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

我只是想确保转移到“最上层”的例子要么更好,要么只是更好/更清洁的做事方式。我不想继续推进我认为看起来更干净的东西,但由于某些原因我看不到

编辑:对于代码的任何打扰,我很抱歉,我在现场写了一个简单的例子

1 个答案:

答案 0 :(得分:5)

简短回答

干(不要重复自己)是一个原则,你应该更害怕而不是“Perfomance”。 因此你应该使用循环。

答案很长

考虑一个(可怕的)时刻来获得第二个代码;一长串相同的代码一遍又一遍地重复20次。让我们想象一下你想要再增加10个:第一个你只是在开始时改变循环(1行),第二个你创建类似于100行代码的东西。然后假设您想要更改每个代码的一些内容:第二个,您必须编辑该代码段30次,第一个...好吧我觉得你有这个概念。