我怀疑它对性能产生“巨大”影响,但我想知道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);
之类的内容包括上述内容。
我只是想确保转移到“最上层”的例子要么更好,要么只是更好/更清洁的做事方式。我不想继续推进我认为看起来更干净的东西,但由于某些原因我看不到
编辑:对于代码的任何打扰,我很抱歉,我在现场写了一个简单的例子
答案 0 :(得分:5)
简短回答
干(不要重复自己)是一个原则,你应该更害怕而不是“Perfomance”。 因此你应该使用循环。答案很长
考虑一个(可怕的)时刻来获得第二个代码;一长串相同的代码一遍又一遍地重复20次。让我们想象一下你想要再增加10个:第一个你只是在开始时改变循环(1行),第二个你创建类似于100行代码的东西。然后假设您想要更改每个代码的一些内容:第二个,您必须编辑该代码段30次,第一个...好吧我觉得你有这个概念。