リテラルの展開はどのタイミングでするべき?
【Tips】もちろん展開しておいた方が高速!
【Description】例えば1日は86400秒ですが、これを86400と書くか60*60*24と書くかで実行速度は大きく変わってきます。count関数の使い方でも説明したように、事前に出来る処理はしておくのが鉄則です。
<?php
define("WORK_TIME", 20000);
function getmicrotime(){
list($usec, $sec) = explode(” “,microtime());
return ((float)$usec + (float)$sec);
}
//毎回展開する場合
$start_time = getmicrotime();
for($i = 0; $i < WORK_TIME; $i++){
$dummy = 60 * 60 * 24;
}
$no_cal_time = sprintf(“%.4f”, getmicrotime() – $start_time);
//展開済みのリテラルの場合
$start_time = getmicrotime();
for($i = 0; $i < WORK_TIME; $i++){
$dummy = 86400;
}
$cal_time = sprintf(“%.4f”, getmicrotime() – $start_time);
?>
<html>
<head><title>整数リテラルの展開の比較</title></head>
<body>
毎回展開する場合の結果:<?php echo($no_cal_time);?>秒<br>
展開済みのリテラルの場合の結果:<?php echo($cal_time);?>秒<br>
</body>
</html>