2010-12-03

Полезное применение static переменных

программирование, PHP

Иногда бывает необходимо в какой либо функции находить какую либо информацию, сохраненную в MySQL табличке по её ID. При этом количество элементов в табличке может быть небольшим, а вот количество вызовов такой функции, наоборот большим. Каждый раз вызывать "select ... from" будет расточительно, вставить справочную табличку через JOIN не всегда возможно. Было бы логично сохранить где-либо все значения справочной таблички а потом брать по ключу (табличка как я уже сказал небольшая). Самое лучшее решение, которое я придумал на сегодня — это воспользоваться static переменным (их можно применять не в только для синглитонов)

static function getDocumentTypeName($type_id){
    static $cache;
    if (!isset($cache)){
        $cache = Db::selectAssoc("select type_id, type_name from doc_types");
    }
    return $cache[$type_id];
}

При этом переменныя $cache остается в области видимости самой функции, что очень удобно, заполняется она один единственный раз при первом вызове функции.

 

комментарии:

 
RSS комментариев

Для того чтобы каждый раз не представляться можно войти как зарегистрированный пользователь.

Имя*

разрешены только теги br, font, span, p, strong, u, p, blockquote, a, div, img - остальные будут безжалостно удаляться

разное (187)
howto (124)
программирование (108)
гад-же-ты (75)
мысли (42)
PHP (41)
JavaScript (39)
вебмастеринг (37)
linux (28)
гондураша (28)
юмор (25)
полезное (21)
Android (17)
движок (17)
софт (15)
деньги (14)
кино (14)
видео (13)
музыка (10)
интернет (10)
путешествия (10)
беспредел (10)
diy (9)
книги (9)
занимательная физика (8)
ztools (8)
умный дом (8)
языки (7)
хостинг (7)
Nokia 5800 (7)
css (6)
вебдизайн (6)
lifehack (6)
связной (5)
apple (5)
oDesk (5)
arduino (5)
козлы (5)
прелоадер (5)
svn (4)
движек (4)
кухня (4)
Python (4)
аниме (4)
занимательная юриспруденция (4)
рестораны (3)
software (3)
энергия (3)
synphony (3)
webmastering (2)
Java (2)
Берлин (2)
Ruby on Rails (2)
фото на документы (2)
гитара (2)
bash (2)
спорт (2)
восстановить (1)
дурдом (1)
авторское право (1)
SEO (1)
сайты (1)
наука (1)
годнурас (1)
C++ (1)
технологии (1)
programming (1)
микросервисы (1)
Поиск по блогу:

Valid XHTML 1.0 Strict