PHP變數作用域小結
阿新 • • 發佈:2019-01-02
變數是用來儲存資訊的“容器”,PHP變數中有這幾個規則:以$符號開始,後面接著變數的名稱;變數名必須以字母或下劃線字元開始;變數名只能包含字母數字字元及下劃線;變數名區分大小寫;
變數作用域是指指令碼中變數可被引用或使用的部分。PHP有四種不同的變數作用域:static parameter global local.
區域性和全域性作用域(loacal global)
在所有函式外定義的變數擁有全域性作用域,在函式內部宣告的變數是區域性變數,僅能在函式內部訪問。要在一個函式中使用全域性變數,需要使用global關鍵字。
//使用global關鍵字 <?php $x=10; $y=20; function test(){ global $x,$y; $y=$x+$y; } test(); echo $y;//輸出30
PHP將所有的全域性變數儲存在一個數組中,名為 $GLOBALS[index] 的陣列中。 index 儲存變數的名稱。//全域性變數區域性變數 <?php $x=5; // 全域性變數 function myTest() { $y=10; // 區域性變數 echo "<p>測試函式內變數:<p>"; echo "變數 x 為: $x"; //輸出錯誤 Notice: Undefined variable: echo "<br>"; echo "變數 y 為: $y"; } myTest(); echo "<p>測試函式外變數:<p>"; echo "變數 x 為: $x"; echo "<br>"; echo "變數 y 為: $y"; //輸出錯誤 Notice: Undefined variable:
static作用域
當一個函式完成時,它的所有變數通常都會刪除,如果期望某個區域性變數不被刪除,在第一次宣告變數時使用static關鍵字。
<?php
function test(){
static $y=1;
echo $y;
$y++;
}
echo test(); //1
echo test(); //2
echo test();
parameter作用域
引數是通過呼叫程式碼將值傳遞給函式的區域性變數。
<?php function myTest($x) { echo $x; } myTest(5);