PHP stop function return from being overwritten -
i've created 2 functions:
function script_start_time() { $start_time = microtime(true); return $start_time; }
and
function script_end_time() { $start = script_start_time(); $end_time = microtime(true); $time_taken = $end_time - $start; $time_taken = round($time_taken, 4); echo 'page generated in '.$time_taken.' seconds.'; }
function script_start_time()
called in header.php
, function script_end_time
called in footer.php
i trying use $start_time
value in function script_end_time
without resorting using global
or static
. 0 in echo, know incorrect.
where going wrong these functions seems $start
getting overwritten in function script_end_time
instead of retaining value function script_start_time
.
the problem script_start_time
function never saves value of $start_time
, instead overwrites anytime function called. you're asking current time anytime call function.
if adjust code should work expected:
function script_start_time() { // save value of $start_time first time requested static $start_time; if (empty($start_time)) { $start_time = microtime(true); } return $start_time; } function script_end_time() { $start = script_start_time(); $end_time = microtime(true); $time_taken = $end_time - $start; $time_taken = round($time_taken, 4); echo 'page generated in '.$time_taken.' seconds.'; } script_start_time(); usleep(5000); script_end_time(); // page generated in 0.0052 seconds.
example: https://eval.in/861112
Comments
Post a Comment