php全局變量的使用方法?這個問題可能是我們日常學習或工作經常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純热荩屛覀円黄饋砜纯窗桑?/p>
成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供修文企業(yè)網站建設,專注與成都網站制作、成都網站設計、H5響應式網站、小程序制作等業(yè)務。10年已為修文眾多企業(yè)、政府機構等服務。創(chuàng)新互聯(lián)專業(yè)網站設計公司優(yōu)惠進行中。php全局變量的使用方法:可以在函數內通過global來聲明該變量,代碼為【$name = "why";function changeName(){global $name;$name = "what";}】。
php全局變量的使用方法:
1、全局變量的global的定義和使用
最初,我的需求是這樣的:
"; ?>
執(zhí)行代碼的結果是:my name is why,而不是執(zhí)行changeName()后顯示what。分析原因,這是因為函數體changeName內$name變量被缺省設置為局部變量,$name的作用域就是在changeName內。于是,修改代碼,添加全局變量如下:
"; ?>
注意:不能在用global聲明變量的同時給變量賦值。像global $name = "why"的使用方式是錯誤的。
定義全局變量后執(zhí)行的結果仍然為my name is why,這個結果讓我吃驚。原來,global的正確用法是:"在一個函數中引入外部的一個變量,如果該變量沒有通過參數傳遞進來,那么就通過global引入進來。" 也就是說,當一個函數引用一個外部變量時,可以在函數內通過global來聲明該變量,這樣該變量就可以在函數中使用了(相當于當作參數傳遞進來)。那么,再次修改代碼:
"; ?>
這次的運行結果是:my name is what,說明global是起傳遞參數的作用,而并非使變量的作用域為全局。再看下面的例子:
"; ?>
執(zhí)行結果為:my name is what,如果在changeName2()中添加global $name,運行結果則是:my name is where。
綜上,global的作用就相當于傳遞參數,在函數外部聲明的變量,如果在函數內想要使用,就用global來聲明該變量,這樣就相當于把該變量傳遞進來了,就可以引用該變量了。
除了使用global參數定義外,還可以使用超全局變量$GLOBAL:
"; ?>
2、global和$GLOBAL
一個例子:
"; $var3 = 1; $var4 = 2; function test2(){ global $var3,$var4; $var4 = &$var3; } test2(); echo $var4 . "
"; ?>
輸出$var2的值為1,$var4的值為2,因為$var3的引用指向了$var4的引用地址。$var4的實際值并沒有改變。官方的解釋是:$GLOBALS['var']是外部的全局變量本身,global $var是外部$var的同名引用或者指針。意味著$GLOBAL在一個腳本的全部作用域中都可用,在函數或方法中無需執(zhí)行global $variable; 就可以訪問它們。與所有其他超全局變量不同,$GLOBALS在PHP中總是可用的。另一個例子:
"; $var2 = 1; function test2(){ global $var2; unset($var2); } test2(); echo $var2; ?>
輸出結果是$var1不存在,而$var2的值為1。這就證明,$var2只是別名引用,本身的值沒有受到任何的改變。也就是說global $var其實就是$var = &$GLOBALS['var'],調用外部變量的一個別名而已!
感謝各位的閱讀!看完上述內容,你們對php全局變量的使用方法大概了解了嗎?希望文章內容對大家有所幫助。如果想了解更多相關文章內容,歡迎關注創(chuàng)新互聯(lián)-成都網站建設公司行業(yè)資訊頻道。