有些程式語言 (例如 C) 具有一種稱做靜態變數 (static variables) 的型別,PHP 也支援靜態變數的寫法。
在 PHP 裡,只有區域變數才能、也才需要宣告成靜態變數,正常的區域變數生命期是在函數執行期間,隨函數的執行結束而結束,而靜態變數的生命期是隨整個 PHP 程式結束而結束,但可見度只有該函數。
我們可以利用關鍵字 static 來宣告靜態變數:
<?php function sum() { static $a = 1;
if ($a < 10) { echo $a; $a++; sum(); } }
sum(); ?>
輸出結果:
123456789
區域或全域變數都不是靜態變數,因為函數執行結束後,變數的值並不會被保留。而所謂的靜態變數意思就是說,當函數執行結束後,該變數的值仍然會被保留,因此第 2 次呼叫該函數時,靜態變數之前的值仍然存在。
--jollen