Tüm fonksiyonlar için php değişkenler?

4 Cevap

Ben aynı değişkeni (session id) kullanımı gerektiren fonksiyonları sürü ile bir php sayfası oluşturma.

I = $ _SESSION ['ID'] $ ID yazabiliyorum; ve sadece her işlevi 'kimliği' kullanmalısınız?

Aksine = $ _SESSION ['ID'] $ kimliği yazmak zorunda göre; Her bir işlev?

Teşekkürler

4 Cevap

Evet, bunu yapabilir ama o oturumu sarar ve statik getXX fonksiyonlar yoluyla ({[) (1]} gibi) değerlerini ortaya bir SessionManager sınıf oluşturmak için daha iyi olurdu.

Böyle bir şey deneyin:

class SessionManager {
    public static function getID() {
        return $_SESSION['ID'];
    }
}

o zaman her yerde istediğiniz böyle kimliği alabilirsiniz:

SessionManager::getID();

Eğer işlev kapsamı dışında bir değişken tanımlamak ve işlevleri içinde otomatik olarak erişmek mümkün arıyorsanız, bu mümkün değil.

Sen $ ID = $ _SESSION ['ID'] tanımlayabilirsiniz; Lütfen fonksiyonu (ler) kapsamı dışında, ama sonra her fonksiyonu içinde bunu eklemek gerekir:

global $ ID;

Bu fonksiyonu $ kimlik değişkeni erişilebilir kılacak.

Bu, çeşitli nedenlerle, tavsiye edilmez. Ben olsaydım, ben sadece işlevi (lar) içinde doğrudan $ _SESSION ['ID'] çağırır.

(Zaten bu düşünce değil sadece durumda) Ayrıca, bu suretle her işlevin başında 'topluca' tüm oturum değişkenleri dönüştürmek olabilir:

foreach ($_SESSION as $key => $value) { 
    $$key = $value; 
}

Eğer $ID global bir değişken olarak her fonksiyonu kullanabilirsiniz bildirirseniz (çağrıldıktan sonra global $ID). ama siz de bu istiyorsanız, başvuruları kullanmak zorunda, $_SESSION['ID'] güncelleme olmaz:

$ID = &$_SESSION['ID']