- serialize: documentation ( source)
- md5: documentation ( source)
<?php
function memoize($func) {
return function () use ($func) {
static $cache = [];
$args = func_get_args();
$key = md5(serialize($args));
if ( !isset($cache[$key]) ) {
$cache[$key] = call_user_func_array($func, $args);
}
return $cache[$key];
};
};
$cube = function($number) {
return $number * $number * $number;
};
$cube3 = memoize($cube, 3);
echo $cube3();