PHP變量的生命周期


變量不僅有其特定的作用范圍,還有其存活的周期--生命周期。變量的生命周期指的是變量可被使用的一個時間段,在這個時間段內變量是有效的,一旦超出這個時間段變量就會失效,我們就不能夠再訪問到該變量的值了。

PHP對變量的生命周期有如下規定。

局部變量的生命周期為其所在函數被調用的整個過程。當局部變量所在的函數結束時,局部變量的生命周期也隨之結束。

全局變量的生命周期為其所在的".php"腳本文件被調用的整個過程。當全局變量所在的腳本文件結束調用時,則全局變量的生命周期結束。

有的時候某個自定義函數結束后,我們希望該函數內的變量仍然存在,這時就需要將這個變量聲明為靜態變量。將一個變量聲明為靜態變量的方法為,在變量前面加"static"關鍵字。

應用靜態變量的示例代碼如下。

<html>  
<head>  
<title>靜態變量的應用</title>  
</head>  
<body>  
<?php  
     function test(){  
          static $a = 0;      //定義一個靜態變量a並賦初始值為0  
          echo $a."<br>";     //輸出變量a的值  
          $a = $a+1;  
 //將變量a的值加1再次賦給變量a  
     }  
      test();             //調用函數test()  
      test();  
      test();  
      echo $a;                //$a,不在作用域下,不輸出
  ?>  
</body>  
</html> 

從上面得到的結果可以看出,每次調用函數test()的時候,變量a的值都會增加1。也就是說,每次調用函數結束以后,變量a都仍然存在。再次調用函數test()時,變量a將會使用上一次調用該函數后得到的值。同時從上面的例子我們也可以得出這樣的結論,靜態變量的作用范圍與局部變量相同,但是生命周期與全局變量相同。

我們可以這樣理解靜態變量。

只有函數首次被調用時,才取函數體內靜態變量的初始值。以后再次調用該函數時,靜態變量將取上次調用這個函數后得到的值。

在為靜態變量賦初值的時候,不可以將一個表達式賦給該靜態變量。

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM