Давид Мзареулян (david_m) wrote,
Давид Мзареулян
david_m

Два примера использования 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 */

Tags: php
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 2 comments