область — есть ли статическая переменная уровня сервера в PHP?

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

function MyValue($valueID) {
if (!isset($myValueCache[$valueID])) {
$myValueCache[$valueID] = ... // The long and expensive calculation.
}
return $myValueCache[$valueID];
}

Вопрос в том, как объявить $myValueCache сохранить свою ценность между разными вызовами скрипта? Я бы назвал это «статическая переменная уровня сервера» или что-то вроде Просто static переменная не является желаемым решением. http://www.elated.com/articles/php-variable-scope-all-you-need-to-know/ пишет: «После выхода из скрипта статическая переменная уничтожается, как это делают локальные и глобальные переменные». Я хотел бы сохранить значение, пока я явно unset Это. Спасибо 🙂

PS. «дорогой» означает, например, доступ к базе данных. Вычисление и жесткое кодирование результата невозможно во время разработки.

0

Решение

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

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector