ahxxx 2019-06-20
如何实现一个耗时的函数或者类的方法多次调用时, 第一次进行运算, 以后再调用这个函数时, 直接返回结果?
<?php class MyDate { public static function getCurrentDate() { static $current_date = ''; if (!$current_date) { echo 'only run one time'; usleep(200000); $current_date = date('Y-m-d H:i:s'); } return $current_date; } public static function getCurrentDate2() { usleep(200000); echo 'run everytime'; return date('Y-m-d H:i:s'); } } $start = microtime(true); $i = 5; while ($i--) { MyDate::getCurrentDate(); } echo microtime(true) - $start; //200ms $start = microtime(true); $i = 5; while ($i--) { MyDate::getCurrentDate2(); } echo microtime(true) - $start; //1s
一个小技巧能提高不少性能