note 78442 deleted from function.return by googleguy

From: Date: Thu, 02 Jan 2014 23:18:43 +0000
Subject: note 78442 deleted from function.return by googleguy
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-198091@lists.php.net to get a copy of this message
Note Submitter: mr dot xanadu at gmail dot com ---- I was wondering what was quicker: - return a boolean as soon I know it's value ('direct') or - save the boolean in a variable and return it at the function's end. <?php $times = 50000; function return_direct ($boolean) { if ($boolean == true) { return true; } return false; } function return_indirect ($boolean) { $return = false; if ($boolean == true) { $return = true; } return $return; } /* Direct, return true */ $time_start = microtime(true); for ($i = 1; $i <= $times; $i++) { return_direct(true); } $time_end = microtime(true); $time_direct_true = $time_end - $time_start; /* Direct, return false */ $time_start = microtime(true); for ($i = 1; $i <= $times; $i++) { return_direct(false); } $time_end = microtime(true); $time_direct_false = $time_end - $time_start; /* Indirect, return true */ $time_start = microtime(true); for ($i = 1; $i <= $times; $i++) { return_indirect(true); } $time_end = microtime(true); $time_indirect_true = $time_end - $time_start; /* Direct, return false */ $time_start = microtime(true); for ($i = 1; $i <= $times; $i++) { return_indirect(false); } $time_end = microtime(true); $time_indirect_false = $time_end - $time_start; echo "<pre>"; echo "direct true\t" . $time_direct_true; echo "\ndirect false\t" . $time_direct_false; echo "\nindirect true\t" . $time_indirect_true; echo "\nindirect false\t" . $time_indirect_false; echo "<pre>"; ?> Representative results: direct true 0.163973093033 direct false 0.1270840168 indirect true 0.0733940601349 indirect false 0.0742440223694 Conclusion: saving the result in a variable appears to be faster. (Please note that my test functions are very simple, maybe it's slower on longer functions)

« previous php.notes (#198091) next »