function square($num) { static $count = 0; echo "計算次數: " . ++$count; return $num * $num; } echo square(5); echo square(8); echo square(10);
代碼輸出結果如下:
計算次數: 1 25 計算次數: 2 64 計算次數: 3 100
從結果可以看出,靜態變量被用來記錄這個函數的調用次數,在每次調用時保存其值,這樣它們可以在函數執行完后仍保留值,這非常有用。
可以看到, $count 變量在函數執行后并沒有被銷毀,而是繼續保留值,這與全局變量相似,但又不同于全局變量。因為靜態變量只在函數執行中生效,而全局變量則是在整個腳本中生效。
前面已經提到,靜態變量在函數執行中生成并持久化存在,同樣也可以修改它們的值,就像我們修改普通變量的值一樣。
現在我們再來看一個在循環中使用靜態變量的例子。
function test_static() { static $count = 0; $count++; echo $count; } for ($i = 0; $i < 5; $i++) { test_static(); }
代碼輸出結果如下:
1 2 3 4 5
從輸出結果可以看出,在每次循環中,靜態變量 $count 會累加,并持久化存在于函數中,循環最終輸出 $count 的值。
靜態變量是 PHP 中非常有用的特性之一。因為它們能夠在函數執行完成后仍然保留值,在下一次調用函數時能夠在原先的值基礎上進行操作。我們希望你能夠理解并使用靜態變量來優化你的 PHP 代碼。
下一篇php 函數 慢