bellek veritabanında php java

4 Cevap php

i need to load data as array to memory in PHP.but in PHP if i write $array= array("1","2"); in test.php then this $array variable is initialized every time user requests.if we request test.php 100 times by clicking 100 times browser refresh button then this $array variable will be executed 100 times.

ama ben bunu yalnızca bu bellek location.how kullanmak variable.but $ dizi yürütmek olmamalıdır $ dizi değişkene ilk kez istek ve test.php sonraki istek için sadece bir kez çalıştırmak gerekiyor PHP.

but in JAVA SEVRVLET it is easy to execute,just write the $array variable in one time execution of init() method of servlet lifecycle method and subsequent request of that servlet dont execute init() method but service() method but service() method always uses that $array memeory location.

all i want to initilize $array variable once but use that memory loc from subsequent request in PHP.is there any possiblity in PHP?

4 Cevap

PHP farklı bir Java Servlet konteyner daha çalışır. Her yeni istek temelde, PHP yorumlayıcısı tamamen yeni bir örneğini başlatır, bu nedenle (eğer bir kullanıcı için istekleri arasında değişkenleri tutmak için genellikle bir dosyaya kalıcı olur kullanıcı başına bir oturumu var) istekleri karşısında global bir adres alanı yok .

Ona yakın gelebilir bir şey "veritabanı" olarak memcached with PHP kullanmak olacaktır, ama size dizi gerekir her zaman memcached sunucuya bir istek göndermek zorunda kalacak . Ben dizi (bu değişmez ise) iyi muhafaza ve PHP dosyası başlatıldı düşünüyorum nedeni budur.

oturum kullanmak

kullanıcı dnm.php açtığında oturumu başlatmak ve bu oturumda dizi seti

<?php
session_start();

if(!isset($_SESSION['user_action'])){ $_SESSION['user_action'] = array("1","2"); } ?>

Oturum değişkeni "user_action" ayarlanırsa o zaman bu dizi ile koyacaktır değilse bu kod, sadece doğrular.

Sonra sonra bu değişkeni değiştirebilirsiniz.

Tüm değişkenleri php ne istediğinizi yapmak için hiçbir yerleşik bir mekanizma vardır, istek kapatma imha edilir.

Sen aşağıdakileri deneyebilirsiniz:

<?php
/* test.php */
if (empty($GLOBALS['array'])) {
    $GLOBALS['array'] = array("1", "2");
}
?>