-PHP Tips- 第8回 ifとswitch

ifとswitch、どちらを使うべき?
【Tips】ifの方が高速!
【Description】同じ変数の複数の値をチェックする場合、if~else if~elseと、swith~case~defaultの2通りが考えられます。以下のソースではifの方が高速です。しかし実際には、見通しという意味でswitchを使った方が良いと思われます。また、
if($hoge == 1){
} else if($fuga == 1){
というように違うレベル(変数)のものを1つのif構造で記述すると見通しが悪くなるので、
if($hoge == 1){
} else {
if($fuga == 1){
とするべきでしょう。

<?php
define
("WORK_TIME", 10000);

function getmicrotime(){
    list(
$usec, $sec) = explode(” “,microtime());
    return ((float)
$usec + (float)$sec);
}

$flag = 0;
$dummy = “”;

//ifの場合
$start_time = getmicrotime();
for(
$i = 0; $i < WORK_TIME; $i++){
    if(!
$flag){
        
$flag = 1;
    } else if(
$flag == 1){
        
$flag = 2;
    } else {
        
$flag = 0;
    }
}
$if_time = sprintf(“%.4f”, getmicrotime() – $start_time);

//switchの場合
$start_time = getmicrotime();
for(
$i = 0; $i < WORK_TIME; $i++){
    switch(
$flag){
    case
0:
        
$flag = 1;
        break;
    case
1:
        
$flag = 2;
        break;
    default:
        
$flag = 0;
    }
}
$switch_time = sprintf(“%.4f”, getmicrotime() – $start_time);

?>
<html>
<head><title>ifとswitchの比較</title></head>
<body>
ifの結果:<?php echo($if_time);?>秒<br>
switchの結果:<?php echo($switch_time);?>秒<br>
</body>
</html>
</code

タイトルとURLをコピーしました