Skip to content

Instantly share code, notes, and snippets.

@joparara
Created October 23, 2023 23:47
Show Gist options
  • Save joparara/50a4f6d0d2e723e466694c6d8795657e to your computer and use it in GitHub Desktop.
Save joparara/50a4f6d0d2e723e466694c6d8795657e to your computer and use it in GitHub Desktop.
memoize
<?
$memoizedAdd = memoize(
function ($num) {
return $num + 10;
}
);
<?
function memoize($func)
{
return function () use ($func) {
static $cache = [];
$args = func_get_args();
$key = serialize($args);
$cached = true;
if (!isset($cache[$key])) {
$cache[$key] = $func(...$args);
$cached = false;
}
return ['result' => $cache[$key], 'cached' => $cached];
};
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment