Oturumlar arasında php statik değişkenler

5 Cevap php

ASP.NET 'te bir değişken (veya nesne) statik (ya da ben singleton'ununu yaparsanız) Ben böylece (o bir server kapsamında kayıtlı) birden fazla kullanıcı çoklu oturum devam olabilir bildirirseniz Ben her talebi başlaması gerekmez.

PHP böyle bir özelliği var mı? Teşekkürler

5 Cevap

APC kurmak ve apc_store ve apc_fetch işlevlerini kullanabilirsiniz.

http://us.php.net/manual/en/book.apc.php

Siz (C yazılı) bir PHP uzantısı ile yapabilirsiniz.

Ama PHP ile yazmak istiyorsanız, hayır. Iyi alternatif, her isteğin sonunda bir dosyaya (file_put_contents ()) için değişken yazmak ve her istek başlangıcında (file_get_contents ()) adresinden açmaktır.

Bu alternatif süreçler aynı zamanda ve aynı dünyaya okuma / yazma yapıyor olacak çünkü yüksek hacimli siteler için işe gitmiyor tüm blaaa-WOOO-EEE-WOHHH-BOOOM gidecek.

Eğer seans içinde bir nesnenin tefrika kopyalarını saklamak olabilir

class test{
  private static $instance;
  public property;
  private __construct(){}
  public getInstace(){
    if(!self::$instance){
      self::$instance = new test;
    }
    return self::$instance;
  }
}

$p = test->getInstance();
$p->property = "Howdy";
$_SESSION["p"] = $p;

Bir sonraki sayfa

$p = $_SESSION["p"];
echo $p->property; // "Howdy"

Bu ancak, verileri serialize ve sabit diskinizde ya da / dev / shm / bir dosyaya ya koyabilirsiniz, PHP yok. Ayrıca memcache kullanabilirsiniz.

/ Dev / shm / verilerinizi koymak veya MEMCACHE yeniden başlatmada verileri will dissapear kullanın.

Ne yazık ki, hayır. PHP'nin static anahtar kelime sadece geçerli komut örneği sınırlıdır.

Aynı oturumda için komut dosyası örnekleri arasında veri devam için, session handling özelliklerini kullanmak istiyorum.

Oturumlar arasında veri devam etmek için, sunucu tarafında ek set-up çalışması gerektiğini ancak, memcache gibi bir şey kullanmak gerekir.