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