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';
?>

私は新しい構文が好きなので、処理時間を節約することを考えてますます使用し始めましたが、本当に節約できますか、それとも 2 つの間に内部的な違いはありませんか?

(コード例は単なる例であり、テクニックのみを示しています)

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";

結果:

(1回目)

最初の実行時間: 0.38401508331299

2 回目の実行時間: 0.40315389633179

(2回目)

最初の実行時間: 0.38593697547913

2 回目の実行時間: 0.40187788009644

結論:あなたの方法は遅くなりますが、その量は非常に少ないので、そうでなくても、より読みやすいコードを書いたほうがよいでしょう。

于 2013-09-12T16:20:46.447 に答える