2012-04-22 34 views

cevap

2

Statik bir değişken, yalnızca varlığın bir sınıfa ait olduğunu, ancak söz konusu sınıfı başlatmaya gerek kalmadan referans alınabileceğini ima eder. Genel bir değişken, global ad alanında yaşar ve herhangi bir sınıftaki herhangi bir işlev tarafından başvuruda bulunabilir. Global vars, her zaman, çok kolay bir şekilde kötüye kullanıldıkları, üzerine yazdıkları, yanlışlıkla başvurdukları, vb. Çünkü, en azından statik vars ile referans vermek için Class::var;

+2

sınıfına karşı açıklama için teşekkürler: var, ama değişken endişeliyim bu bağlamda küresel her zaman değiştirilebilir, ancak statik tür sabittir, –

1

Global, global varlıkları tanımlamak için kullanılır. komut dosyaları veya aynı kapsamda değil.

örn.

<?php 

$g_var = 1; 

function test() { 
    var_dump($GLOBAL['g_var']); 

    global $g_var; 
    var_dump($g_var); 
} 

Statik, tüm senaryo yaşamı olan ve yalnızca bir kez init içeren bir var tanımlamak için kullanılır.

örn.

<?php 

function test() { 
    static $cnt = 0; 
    $cnt ++; 
    echo $cnt; 
} 

$i = 10; 

while (-- $i) { 
    test(); 
} 
+0

yani demek bir işlevde STATIK ilan ?? –

+1

@ Unnknown hayır, bunu demek istemiyorum. Statik vaiable serbestçe değiştirilebilir. Ancak init işlemi sadece bir kez çalışır. Örneğime bakın, "statik $ cnt = 0" sadece bir kez çalışır, daha sonra her çağrıldığında func, değişken bir tarafından eklenir. – wedgwood

İlgili konular