кодесурса
«PHP

Упражнения PHP: Memoize данной функции приводит к памяти

script1adsense2code
script1adsense3code

PHP: упражнение 99 с решением

Напишите PHP-программу для запоминания заданных функций в памяти.

Примечание. В вычислениях запоминание или запоминание - это метод оптимизации, который используется главным образом для ускорения работы компьютерных программ путем сохранения результатов дорогостоящих вызовов функций и возврата кэшированных результатов, когда те же входные данные повторяются.

Пример решения: -

PHP-код:

<?php
//Licence: https://bit.ly/2CFA5XY
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];
    };
}
$memoizedAdd = memoize(
    function ($num) {
        return $num + 10;
    }
);
var_dump($memoizedAdd(5));  
var_dump($memoizedAdd(6));  
var_dump($memoizedAdd(5));  
?>

Пример вывода:

 массив (2) {
  [ "Результат"] =>
  INT (15)
  [ "Кэшировать"] =>
  BOOL (ложь)
}
массив (2) {
  [ "Результат"] =>
  INT (16)
  [ "Кэшировать"] =>
  BOOL (ложь)
}
массив (2) {
  [ "Результат"] =>
  INT (15)
  [ "Кэшировать"] =>
  BOOL (истина)
}

Блок - схема:

«Блок-схема:

Редактор кода PHP:

Есть другой способ решить это решение? Внесите свой код (и комментарии) через Disqus.

Предыдущий: Напишите программу PHP, чтобы создать новую функцию, которая объединяет несколько функций в один вызываемый объект.
Далее: Напишите PHP-программу для карри функции, которая принимает аргументы в нескольких вызовах.

Каков уровень сложности этого упражнения?

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code