php全局變量的使用方法?這個(gè)問(wèn)題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見(jiàn)到的。希望通過(guò)這個(gè)問(wèn)題能讓你收獲頗深。下面是小編給大家?guī)?lái)的參考內(nèi)容,讓我們一起來(lái)看看吧!
成都創(chuàng)新互聯(lián)公司是一家專(zhuān)業(yè)提供修文企業(yè)網(wǎng)站建設(shè),專(zhuān)注與成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、H5響應(yīng)式網(wǎng)站、小程序制作等業(yè)務(wù)。10年已為修文眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專(zhuān)業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。php全局變量的使用方法:可以在函數(shù)內(nèi)通過(guò)global來(lái)聲明該變量,代碼為【$name = "why";function changeName(){global $name;$name = "what";}】。
php全局變量的使用方法:
1、全局變量的global的定義和使用
最初,我的需求是這樣的:
<?php $name = "why"; function changeName(){ $name = "what"; } changeName(); echo "my name is " . $name . "<br/>"; ?>
執(zhí)行代碼的結(jié)果是:my name is why,而不是執(zhí)行changeName()后顯示what。分析原因,這是因?yàn)楹瘮?shù)體changeName內(nèi)$name變量被缺省設(shè)置為局部變量,$name的作用域就是在changeName內(nèi)。于是,修改代碼,添加全局變量如下:
<?php global $name; $name = "why"; function changeName(){ $name = "what"; } changeName(); echo "my name is " . $name . "<br/>"; ?>
注意:不能在用global聲明變量的同時(shí)給變量賦值。像global $name = "why"的使用方式是錯(cuò)誤的。
定義全局變量后執(zhí)行的結(jié)果仍然為my name is why,這個(gè)結(jié)果讓我吃驚。原來(lái),global的正確用法是:"在一個(gè)函數(shù)中引入外部的一個(gè)變量,如果該變量沒(méi)有通過(guò)參數(shù)傳遞進(jìn)來(lái),那么就通過(guò)global引入進(jìn)來(lái)。" 也就是說(shuō),當(dāng)一個(gè)函數(shù)引用一個(gè)外部變量時(shí),可以在函數(shù)內(nèi)通過(guò)global來(lái)聲明該變量,這樣該變量就可以在函數(shù)中使用了(相當(dāng)于當(dāng)作參數(shù)傳遞進(jìn)來(lái))。那么,再次修改代碼:
<?php $name = "why"; function changeName(){ global $name; $name = "what"; } changeName(); echo "my name is " . $name . "<br/>"; ?>
這次的運(yùn)行結(jié)果是:my name is what,說(shuō)明global是起傳遞參數(shù)的作用,而并非使變量的作用域?yàn)槿帧T倏聪旅娴睦樱?/p>
<?php $name = "why"; function changeName(){ global $name; $name = "what"; } function changeName2(){ $name = "where"; } changeName(); changeName2(); echo "my name is " . $name . "<br/>"; ?>
執(zhí)行結(jié)果為:my name is what,如果在changeName2()中添加global $name,運(yùn)行結(jié)果則是:my name is where。
綜上,global的作用就相當(dāng)于傳遞參數(shù),在函數(shù)外部聲明的變量,如果在函數(shù)內(nèi)想要使用,就用global來(lái)聲明該變量,這樣就相當(dāng)于把該變量傳遞進(jìn)來(lái)了,就可以引用該變量了。
除了使用global參數(shù)定義外,還可以使用超全局變量$GLOBAL:
<?php $name = "why"; function changeName(){ $GLOBALS['name'] = "what"; } changeName(); echo "my name is " . $name . "<br/>"; ?>
2、global和$GLOBAL
一個(gè)例子:
<?php $var1 = 1; $var2 = 2; function test1(){ $GLOBALS['var2'] = &$GLOBALS['var1']; } test1(); echo $var2 . "<br />"; $var3 = 1; $var4 = 2; function test2(){ global $var3,$var4; $var4 = &$var3; } test2(); echo $var4 . "<br />"; ?>
輸出$var2的值為1,$var4的值為2,因?yàn)?var3的引用指向了$var4的引用地址。$var4的實(shí)際值并沒(méi)有改變。官方的解釋是:$GLOBALS['var']是外部的全局變量本身,global $var是外部$var的同名引用或者指針。意味著$GLOBAL在一個(gè)腳本的全部作用域中都可用,在函數(shù)或方法中無(wú)需執(zhí)行g(shù)lobal $variable; 就可以訪問(wèn)它們。與所有其他超全局變量不同,$GLOBALS在PHP中總是可用的。另一個(gè)例子:
<?php $var1 = 1; function test1(){ unset($GLOBALS['var1']); } test1(); echo $var1 . "<br />"; $var2 = 1; function test2(){ global $var2; unset($var2); } test2(); echo $var2; ?>
輸出結(jié)果是$var1不存在,而$var2的值為1。這就證明,$var2只是別名引用,本身的值沒(méi)有受到任何的改變。也就是說(shuō)global $var其實(shí)就是$var = &$GLOBALS['var'],調(diào)用外部變量的一個(gè)別名而已!
感謝各位的閱讀!看完上述內(nèi)容,你們對(duì)php全局變量的使用方法大概了解了嗎?希望文章內(nèi)容對(duì)大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。
網(wǎng)頁(yè)題目:php全局變量的使用方法-創(chuàng)新互聯(lián)
當(dāng)前鏈接:http://www.rwnh.cn/article36/doejsg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、Google、網(wǎng)站策劃、用戶(hù)體驗(yàn)、做網(wǎng)站、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容