多个变量检查​​与重复模板字符串与设置/未设置变量

时间:2010-12-13 13:40:43

标签: performance

您觉得这种方法中的一种更好吗? 此示例在PHP中,但游戏规则与其他语言相同。
1。首先制作一个if块并复制else块中的模板字符串:

if($var['b'])
{
    $text='<tr>
        <td style="cursor:pointer; color:black;"></td>
        <td class="one">'.$var['b'].'</td>
        <td class="two">'.$var['b'].'/'.$var['a'].'</td>
        <td class="other">'.($var['a']/$var['b']).'</td>
        </tr>';
} else {
    $text='<tr>
        <td style="color:red;"></td>
        <td class="one"></td>
        <td class="two">'.$var['a'].'</td>
        <td class="other">0</td>
        </tr>';
}

2。第二次反复检查相同的变量,但不要复制模板字符串:

$text='<tr>
    <td style="'.(($var['b'])?'cursor:pointer; color:black;':'color:red;').'"></td>
    <td class="one">'.(($var['b'])?$var['b']:'').'</td>
    <td class="two">'.(($var['b'])?$var['b'].'/'.$var['a']:$var['a']).'</td>
    <td class="other">'.(($var['b'])?($var['a']/$var['b']):'0').'</td>
    </tr>';

第3。第三个是单个变量检查​​,不要复制模板字符串,设置/取消设置变量:

$css = 'color:red;';
$one = '';
$two = $var['a'];
$other = 0;
if($var['b'])
{
    $css = 'cursor:pointer; color:black;';
    $one = $var['b'];
    $two = $var['b'].'/'.$var['a'];
    $other = ($var['a']/$var['b']);
}
$text='<tr>
    <td style="'.$CSS.'"></td>
    <td class="one">'.$one.'</td>
    <td class="two">'.$two.'</td>
    <td class="other">'.$other.'</td>
    </tr>';
unset($css,$one,$two,$other);

<击> 这是一个简单的例子,所以无关紧要,但想象一个大项目,这样的事情可以用于单个脚本实例十到一百次。在第一个我们有一个更大的源代码,但我们获得速度,在第二个我们的代码很小(几乎很难读),但我们松了一些速度,因为多个变量检查​​,第三个是易于阅读,不使用很多空间,但由于设置和取消变量,我们会放松一些速度和记忆。

1 个答案:

答案 0 :(得分:0)

我在最近几个月里学到了与浏览SO这个问题相关的一件事:

代码的

可读性非常重要,因此只要您的代码很容易被人类阅读,因此不会使用什么方法,因为现代编译器在优化方面做得非常好你的代码以尽可能快的速度运行。