Heim  >  Artikel  >  Backend-Entwicklung  >  Verwendung statischer Variablen in PHP, detaillierte Erläuterung des Unterschieds zwischen lokalen statischen Variablen und globalen statischen Variablen

Verwendung statischer Variablen in PHP, detaillierte Erläuterung des Unterschieds zwischen lokalen statischen Variablen und globalen statischen Variablen

伊谢尔伦
伊谢尔伦Original
2017-06-30 11:23:091592Durchsuche

StatischeVariable existiert nur im Funktionsbereich. Statische Variablen leben nur im Stapel. Beim nächsten Aufruf dieser Funktion wird der Wert angezeigt wird beibehalten

Statische Variablen existieren nur innerhalb des Funktionsumfangs und statische Variablen leben nur auf dem Stapel. Im Allgemeinen werden Variablen innerhalb von Funktionen nach Funktionsende freigegeben, z. B. lokale Variablen, statische Variablen jedoch nicht. Beim nächsten Aufruf dieser Funktion bleibt der Wert der Variablen erhalten.

Grundlegende Verwendung statischer Variablen

1. Definieren Sie statische Variablen in der Klasse
[Zugriffsmodifikator] statisch $Variablenname ; 🎜>2. So greifen Sie auf statische Variablen zu
Beim Zugriff in einer Klasse gibt es zwei Methoden: self::$statischer Variablenname, Klassenname::$statischer Variablenname
Beim Zugriff außerhalb der Klasse: Es gibt eine Methode Klasse name::$statischer Variablenname

Beispiel

class Child{ 
public $name; 
//这里定义并初始化一个静态变量 $nums 
public static $nums=0; 
function construct($name){ 
$this->name=$name; 
} 
public function join_game(){ 
//self::$nums 使用静态变量 
self::$nums+=1; 
echo $this->name."加入堆雪人游戏"; 
} 


}

//创建三个小孩 

$child1=new Child("李逵"); 
$child1->join_game(); 
$child2=new Child("张飞"); 
$child2->join_game(); 
$child3=new Child("唐僧"); 
$child3->join_game(); 

//看看有多少人玩游戏 
echo "<br/> 有这".Child::$nums;
Eigenschaften statischer lokaler Variablen:


1. Folgt nicht Funktionsaufrufen und

Änderungen beim Verlassen von , aber obwohl die Variable weiterhin existiert, kann sie nicht verwendet werden. Wenn die Funktion, die sie definiert, erneut aufgerufen wird, kann sie weiterhin verwendet werden und der nach dem vorherigen Aufruf verbleibende Wert wird gespeichert2 Statische lokale Variablen werden nur einmal initialisiert
Statische
Attribute kann nur mit einem Zeichenwert oder einer Konstante initialisiert werden und Ausdrücke können nicht verwendet werden. Selbst wenn eine lokale statische Variable ohne Anfangswert definiert ist, weist das System automatisch einen Anfangswert von 0 (für numerische Variablen) oder ein Nullzeichen (für Zeichenvariablen) zu. 4. Wenn eine Funktion mehrmals aufgerufen wird und die Werte bestimmter Variablen zwischen den Aufrufen beibehalten werden müssen, können statische lokale Variablen berücksichtigt werden. Obwohl globale Variablen auch zum Erreichen des oben genannten Zwecks verwendet werden können, verursachen globale Variablen manchmal unerwartete Nebenwirkungen. Daher ist es immer noch besser, lokale statische Variablen zu verwenden.

function test()
{
    static $var = 5;  //static $var = 1+1;就会报错
    $var++;
    echo $var . &#39; &#39;;
}
 
test(); //2
test(); //3
test(); //4
echo $var; //报错:Notice: Undefined variable: var
Über statische globale Variablen:

//全局变量本身就是静态存储方式,所有的全局变量都是静态变量
function static_global(){
    global $glo;
    $glo++;
    echo $glo.&#39;<br>&#39;;
}
static_global(); //1
static_global(); //2
static_global(); //3
echo $glo . &#39;<br>&#39;; //3



Das obige ist der detaillierte Inhalt vonVerwendung statischer Variablen in PHP, detaillierte Erläuterung des Unterschieds zwischen lokalen statischen Variablen und globalen statischen Variablen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn