ホームページ  >  記事  >  バックエンド開発  >  Cache_PHP チュートリアルとして静的変数を使用する

Cache_PHP チュートリアルとして静的変数を使用する

WBOY
WBOYオリジナル
2016-07-20 11:05:47849ブラウズ

あなたは次のような状況に遭遇したと思います
2 つのテーブル、magazine (雑誌情報) と subscibe (購読情報) があります。subscibe テーブルには、magazine テーブルの番号と関連付けます。閲覧購読情報のリストを作成する場合、このリストには雑誌の名前 (マガジン テーブルの名前フィールド) を表示する列があります。1 つの方法は、join を使用して 2 つのテーブル間に関連付けを作成し、magazine_id を次の値に置き換えることです。 name. ですが、このリストは検索結果であり、SQL のクエリ文を結合することになるので、SQL の結合のロジックが少し複雑になるため、単純に select * from subscibe にする方が良いでしょう。ここで....、その場合、結果セット内のmagazine_idをクエリする方が簡単になります。別の問題は、プログラム内であまりにも多くのクエリを繰り返したくないことです。たとえば、結果には10個のデータがあります。すべて同じmagazine_idに関連するものを設定すると、さらに9つの重複クエリが発生するため、次のようにすることにしました

function MagazineInfoById($magazine_id){
global $db;
static $magazine_info;

if (! isset($magazine_info[$magazine_id]) ){
$magazine_info[$magazine_id] = $db->getRow('select * from Magazine where id = '. $magazine_id);
}

return $magazine_info[$magazine_id] ];
}

while (. ...){
$magazine_info = MagazineInfoById($magazine_id);
....
}


MagazineInfoById() の静的変数 $magazine_info はキャッシュされたフォームになります。場合によっては、クエリの数を大幅に減らし、クエリの繰り返しを避けることができます


http://www.bkjia.com/PHPjc/445105.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/445105.html技術記事きっと次のような状況に遭遇したことがあるでしょう。magazine (雑誌情報) と subscibe (購読情報) という 2 つのテーブルがあります。subscibe テーブルには、magazine_id と、magazine テーブルがあります。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。