現在的網站開發越來越流行使用PHP語言,PHP語言非常適合web開發。而在PHP中,static是常用到的一個關鍵字,應用非常廣泛。它可以用于函數中、類中和變量中,具有不同的作用。下面我們就來看看PHP中static的用法及其相應舉例。
1. 在函數中使用static
在函數中,如果聲明了一個變量,并且在函數執行結束之后依然需要使用這個變量的值,就可以用static修飾這個變量。這時該變量的值就會被保留下來。例如:
function sum(){ static $n=0; $n++; echo $n; } sum(); // 輸出1 sum(); // 輸出2 sum(); // 輸出3
在上例中,$n初始為0,被static修飾。每次調用sum()函數時,$n就加1,但它的值會被保留。所以輸出的結果為1、2、3。
2. 在類中使用static
在類定義中,如果要使用一個變量或方法,而不希望每次需要實例化類,就可以使用static。例如,在下列代碼中:
class myClass { public static $myVar = 'Hello, World!'; public static function myFunc(){ echo 'This is a Test!'; } } echo myClass::$myVar.'<br />'; // 輸出:Hello, World! myClass::myFunc(); // 輸出:This is a Test!
可以看到,在類定義中,使用了static關鍵字聲明了一個靜態變量和一個靜態方法。在這個類的外部,可以使用類名來直接訪問這些東西。
3. static修飾局部變量作用域
我們知道,在php中,$var和&$var是有區別的。前者不傳遞指針,后者傳遞指針。使用static修飾了一個局部變量,它的作用域就可以和&$var相同。例如:
function test(){ static $a = 0; $a++; echo $a ."<br>"; } test(); // 輸出 1 test(); // 輸出 2 test(); // 輸出 3
在這個例子中,$a初始值是0,每次執行 test() 函數時都會自增1,并輸出$a的值。由于$a被 static 關鍵字定義,所以即使退出函數,變量$a的值也并不會消失。同樣,如果在函數內部定義一個 $b 變量,不使用static關鍵字,它的作用域就只在函數內部,退出函數,變量$b的值會丟失。
總之,在php中,使用static可以定義靜態變量,而靜態變量不同于局部變量。它不會在函數或類定義結束時失效,而是會一直保留下來,發揮它的作用。