1

我每天都在研究如何越来越多地优化代码,以及如何学习更快地编写代码。

在线查看一些缩小的 JS,我注意到一些 IF 更改为语句,我认为在 PHP 中开始使用它可能是一个非常好的主意。

<?php
if(!isset($myVar) || $myVar == 'val'){
    $myVar = 'oldVal';
}
if(isset($myVar2) && $myVar2 == 'oldVal'){
    $myVar2 = 'newVal';
}
?>

进入

<?php
(!isset($myVar) || $myVar == 'val') && $myVar = 'oldVal';
isset($myVar2) && $myVar2 == 'oldVal' && $myVar2 = 'newVal';
?>

由于我喜欢新语法,我开始越来越多地使用它来节省处理时间,但是我真的节省了任何东西还是两者在内部没有区别?

(示例代码只是一个示例,仅展示技术)

4

1 回答 1

2

我使用这段代码来分析这两种方法:

<?php

$iterations = 1000000;
$startTime = microtime( true );

$i = 0;
while( ++$i < $iterations ) {
    if(!isset($myVar) || $myVar == 'val'){
        $myVar = 'oldVal';
    }
    if(isset($myVar) && $myVar == 'oldVal'){
        $myVar = 'newVal';
    }
}

echo 'First Running Time: ' . (microtime(true) - $startTime) . "\n";


$startTime = microtime( true );
$i = 0;
while( ++$i < $iterations ) {
    (!isset($myVar) || $myVar == 'val') && $myVar = 'oldVal';
    isset($myVar) && $myVar == 'oldVal' && $myVar = 'newVal';
}

echo 'Second Running Time: ' . (microtime(true) - $startTime) . "\n";

结果:

(第一次运行)

首次运行时间:0.38401508331299

第二次运行时间:0.40315389633179

(第二轮)

首次运行时间:0.38593697547913

第二次运行时间:0.40187788009644

Conclusion: Your method is slower, but the amount is so small that even if it weren't you would still be better off writing more readable code.

于 2013-09-12T16:20:46.447 回答