什麼是靜態變數?
靜態變數 類型說明符是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 'The age is: 1' echo Person::tellAge(); //output 'The age is: 2' echo Person::tellAge(); //output 'The age is: 3' echo Person::tellAge(); //output 'The age is: 4' ?>
程式運行結果:
The age is: 1 The age is: 2 The age is: 3 The age is: 4
更多PHP相關知識,請造訪php中文網!
以上是php靜態變數的作用是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!