本文章來簡單的介紹一下關于static變量在php函數中的用法,有需要了解的同學可參考一下.
實例代碼如下:
- function sendHeader($num, $rtarr = null)
- {
- static $sapi = null;
- if ($sapi === null)
- {
- $sapi = php_sapi_name();
- }
- return $sapi++;
看PW源碼的時候發現setHeader()函數中使用static關鍵字,很奇怪,以前也沒這樣用過.
static用在函數里面,聲明一次變量后,如果再次調用這個函數將會在初始值延續,如$sapi這里將累加.
實例代碼如下:
- ?echo sendHeader(1)."<br>";
- echo sendHeader(2)."<br>";
- echo sendHeader(3)."<br>";
- output:
- ?apache2handler
- apache2handles
- apache2handlet
和global有點類似,但不同的是作用域.static只能作用于此函數.
有點意思.需要深入研究.
實例代碼如下:
- class test
- {
- public static function a(){}
- public function b(){}
- }
- $obj = new test;
調用代碼
實例代碼如下:
- test::a();
- $obj->a();
- $obj->b();
變量范圍的另一個重要特性是靜態變量(static variable).靜態變量僅在局部函數域中存在,但當程序執行離開此作用域時,其值并不丟失
例子 使用靜態變量的例子
實例代碼如下:
- <?php
- function test()
- {
- static $w3sky = 0;
- echo $w3sky;
- $w3sky++;
- }
- ?>
現在,每次調用 test() 函數都會輸出 $w3sky 的值并加一.
新聞熱點
疑難解答