PHP中全域性變數和區域性變數詳解

2021-07-23 23:36:37 字數 1915 閱讀 5889

直接用例子說話:

例一:

function

fun1

()function

fun2

()fun1(); //輸出的結果為100

fun2(); //輸出的結果為200

例二:

function

fun1

()function

fun2

()fun1();

fun2();

echo

$a;echo

$b;//輸出的結果是得不到任何的值

對例一和例二進行比較可知:

呼叫函式的時候將變數$a,$b的值存入到記憶體中,呼叫結束後將變數$a,$b的值從記憶體中釋放掉。

在函式內宣告的變數只能在函式中使用。//區域性變數

$a=100;

function

fun1

()function

fun2

()fun1();

fun2();//得不到任何的值。

系統不能區分開$a有什麼不同。函式外部宣告了$a,在函式內部的$a看做是新宣告的變數,所以無法輸出。要區分開的話需要加乙個關鍵字global。

$a=100;

function

fun1

()function

fun2

()fun1();//得到的值為100

fun2();//得到的值為100。全域性變數

$a=100;

$b=300;

function

fun1

()function

fun2

()fun1();

fun2();

$a=100;

$b=300;

function

fun1

()function

fun2

()fun1();

fun2();

echo

$a."

";//得到999

echo

$b."

";//得到111

$a=100;

$b=300;

function

fun1

($a)

function

fun2

($b)

fun1($a);//得不到任何值

fun2($b);//得不到任何值

echo

$a."

";//得到999

echo

$b."

";//得到111

$a=100;

function fun1($a)//傳值:將全域性變數值$a=100傳遞給函式fun1

fun1($a);//編譯函式並釋放掉記憶體中的$a=999

echo $a."

";//得到全域性變數的值100.

$a=100;

function fun1(&$a)//&代表傳位址

fun1($a);

echo$a."

";//得到結果為999

function

test

()test();//得到值為0

test();//得到值為0

test();//0

原因:在呼叫後記憶體被釋放。宣告輸出釋放三步。

function

test

()test();//可以任意的改變大小寫,在php裡函式是不區分大小寫的,變數區分

function_exists("test");//判斷函式是否存在

**:

全域性變數和區域性變數詳解

1.區域性變數 1 區域性變數也稱為內部變數,他是在函式體內作定義說明的,其作用域僅限於函式內部,離開該函式後再使用這種變數是非法的。如 func 2 乙個函式可以為區域性變數定義任何名字,而不用擔心其他函式使用過同樣的名字。void main void func 中兩個函式都包含乙個變數定義語句。...

全域性變數和區域性變數

全域性變數 可以被不同的函式 類或檔案呼叫的變數,在函式外定義。區域性變數 只能在函式內使用,定義在函式內。區域性變數的使用 class myclass def myfun num 12 print myfun num num 正確 def myfun2 num num 1 print mufun ...

全域性變數和區域性變數

區域性變數 在方法中開闢的變數,只在方法中有效 區域性變數在定義時不會初始化,要顯式的給它乙個值 如未給它乙個初始值,雖然編譯的時候會通過,但是執行的時候會產生為初始化錯誤!方法呼叫 執行完,區域性變數便會自動釋放。在方法內的語句塊中建立的變數在編譯時假如未初始,如若使用,也會報未初始化錯誤!呼叫的...