?

Log in

No account? Create an account

[icon] Два примера использования static-переменных в PHP4. 1. Кэширование… - Давид Мзареулян — ЖЖ
View:Свежие записи.
View:Архив.
View:Друзья.
View:Личная информация.
View:Website (Мои фотографии).
View:Иероглиф. hiero.ru/David. RSS2LJ. Здешние теги.

Tags:
Security:
Time:11:53 pm
Два примера использования static-переменных в PHP4.

1. Кэширование результата действия функции:
function Foo($bar) {
    static $cache = array();
    if(isset($cache[$bar])) return $cache[$bar];
    /*
        долгое вычисление значения $res из значения $bar
    */
    $cache[$bar] = $res;
    return $res;
}



2. Моделирование Singleton-объекта (объекта, который существует ровно в одном экземпляре):
class Foo {
    function &Make() {
        static $obj = null;
        if($obj === null) $obj = new Foo();
        return $obj;
    }
    /* ... */
}

/* в любом месте программы, независимо от области видимости */
$a =& Foo::Make();
/* ... */
/* в любом месте программы, независимо от области видимости */
$b =& Foo::Make();
/* в $b - тот же объект, что и в $a */

Комментарии: написать Previous Entry Поделиться Next Entry


romikchef
Link:(Link)
Time:2003-12-30 01:49 pm
Давид, а на форум? :-)
Там было бы мне кажется, всем интересно.
(Ответить) (Thread)


david_m
Link:(Link)
Time:2003-12-30 02:14 pm
Ну, не знаю... для статьи это мелковато, а тему заводить как-то странно будет -- это же не вопрос.

Кстати, про первый приём я как-то уже там упоминал: http://xpoint.ru/forums/programming/PHP/thread/24030.xhtml#231512
(Ответить) (Parent) (Thread)

[icon] Два примера использования static-переменных в PHP4. 1. Кэширование… - Давид Мзареулян — ЖЖ
View:Свежие записи.
View:Архив.
View:Друзья.
View:Личная информация.
View:Website (Мои фотографии).
View:Иероглиф. hiero.ru/David. RSS2LJ. Здешние теги.