私のウェブサイト(PHP提供)は計算に費用がかかり、計算が確定的ないくつかの値を使用しているため、最初のリクエストで結果をキャッシュしたいと思います。質問は、どのようにスクリプトの異なる呼び出しの間その値を維持するために$myValueCache
を宣言することですPHPにはサーバレベルの静的変数がありますか?
function MyValue($valueID) {
if (!isset($myValueCache[$valueID])) {
$myValueCache[$valueID] = ... // The long and expensive calculation.
}
return $myValueCache[$valueID];
}
:それから私は、この機能を使用することができますか?私はそれを"サーバレベルの静的変数"などと呼んでいます。単純な変数static
は望ましい解決策ではありません。 http://www.elated.com/articles/php-variable-scope-all-you-need-to-know/は次のように書いています。「スクリプトが終了すると、静的変数はローカル変数やグローバル変数のように破棄されます。明示的にunset
まで値を保持したいと思います。ありがとう:)
PS。 「高価」とは、たとえばデータベースへのアクセスを意味します。結果の計算とハードコーディングは開発時には不可能です。
ユーザがセッションに詰め込んだら、すでにDBを持っているのでDBフィールドに保存しないと、キャッシュからのSELECT値WHERE id = $ valueID' – AbraCadaver
長い沈黙の後、最終的な答えは「PHPにそのような変数宣言はありません」と思います。 (しかし、私は確信していない、それは私がそれを求めている理由です)推奨された回避策をありがとう。 @ AbraCadaverの説明を含むメモリ内のデータベースは解決策かもしれません。 –