-PHP Tips- 第10回 strcmpと==

文字列を比較するstrcmp関数は何のためにあるの?
【Tips】strcmpを使う方が僅かに高速!
【Description】単純に同じかどうかを比較するのであれば、$hoge == “fuga”をテストする方法と、!strcmp($hoge, “fuga”)とする方法がありますが、後者の方が非常に僅かながら高速です。

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

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

$hoge = "this is a text for bench-mark";
$fuga = "this is a text for bench-marks";

//strcmpを使わない場合
$start_time = getmicrotime();
for($i = 0; $i < WORK_TIME; $i++){
    if($hoge == $fuga){
        $dummy = $hoge;
    }
}
$no_strcmp_time = sprintf("%.4f", getmicrotime() - $start_time);

//strcmpを使う場合
$start_time = getmicrotime();
for($i = 0; $i < WORK_TIME; $i++){
    if(!strcmp($hoge, $fuga)){
        $dummy = $hoge;
    }
}
$strcmp_time = sprintf("%.4f", getmicrotime() - $start_time);
?>

<html>
<head><title>strcmpの比較</title></head>
<body>
strcmpを使わない場合の結果:<?php echo($no_strcmp_time);?>秒<br>
strcmpを使う場合の結果:<?php echo($strcmp_time);?>秒<br>
</body>
</html>
タイトルとURLをコピーしました