php函數中使用static

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隻能作用於此函數。
有點意思。需要深入研究。

 

 

摘自 zaric

You May Also Like