-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>
</code

コメント

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