首頁 >後端開發 >PHP問題 >php靜態變數的作用是什麼?

php靜態變數的作用是什麼?

青灯夜游
青灯夜游原創
2019-10-18 14:14:253377瀏覽

php靜態變數的作用是什麼?

什麼是靜態變數?

靜態變數 類型說明符是static。

靜態變數屬於靜態儲存方式,其儲存空間為記憶體中的靜態資料區(在靜態儲存區內分配儲存單元),該區域中的資料在整個程式的運行期間一直佔用這些儲存空間(在程式整個運行期間都不釋放),也可以認為是其記憶體位址不變,直到整個程式運行結束。

靜態變數雖然在程式的整個執行過程中始終存在,但在它作用域之外不能使用。

只要在變數前面加上關鍵字static,變數就變成靜態變數了。

php靜態變數的作用

1、在函數內部修飾變數。靜態變數在函數被呼叫的過程中其值維持不變。

<?php
function testStatic() {
    static $val = 1;
    echo $val."<br />";;
    $val++;
}
testStatic();   //output 1
testStatic();   //output 2
testStatic();   //output 3
?>

程式運行結果:

1
2
3

2、在類別中修飾屬性,或方法。

修飾屬性或方法,可以透過類別名稱訪問,如果是修飾的是類別的屬性,保留值

<?php
class Person {
    static $id = 0;
 
    function __construct() {
        self::$id++;
    }
 
    static function getId() {
        return self::$id;
    }
}
echo Person::$id;   //output 0
echo "<br/>";
 
$p1=new Person();
$p2=new Person();
$p3=new Person();
 
echo Person::$id;   //output 3
?>

程式運行結果:

0
3

3、在類的方法裡修飾變數。

<?php
class Person {
    static function tellAge() {
        static $age = 0;
        $age++;
        echo "The age is: $age
";
    }
}
echo Person::tellAge(); //output &#39;The age is: 1&#39;
echo Person::tellAge(); //output &#39;The age is: 2&#39;
echo Person::tellAge(); //output &#39;The age is: 3&#39;
echo Person::tellAge(); //output &#39;The age is: 4&#39;
?>

程式運行結果:

The age is: 1 The age is: 2 The age is: 3 The age is: 4

更多PHP相關知識,請造訪php中文網

以上是php靜態變數的作用是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn