1 回答

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超4個(gè)贊
可以通過您剛剛執(zhí)行的兩種方式在全局范圍內(nèi)創(chuàng)建變量 - 沒有人說函數(shù)不能在全局范圍內(nèi)創(chuàng)建(或更改)變量 - 當(dāng)您通過 或 關(guān)鍵字明確要求$GLOBALS
時(shí)global
。
問題在于您的信念“我認(rèn)為創(chuàng)建全局變量的唯一方法是在函數(shù)外部創(chuàng)建它;在全局范圍內(nèi)。” 不是一個(gè)確切的陳述。當(dāng)您使用$GLOBALS
and時(shí)global
,您指的是全局范圍。您在函數(shù)內(nèi)部引入了對(duì)全局范圍的引用。
實(shí)際上,global
您將本地引用鏈接到全局引用,同時(shí)$GLOBALS
您顯式引用了全局范圍(可以在 PHP 內(nèi)部以相同的方式將其引入本地范圍)。
在那種情況下,你明確地說“我希望這個(gè)變量在全局范圍內(nèi)可用,讓它如此!” PHP 會(huì)按照您的要求進(jìn)行操作。這種行為因語言而異,但正如您所發(fā)現(xiàn)的,對(duì)于 PHP,這是允許的。
我不建議以任何方式使用它——它使您的代碼很難理解和爭(zhēng)論,因此請(qǐng)將其視為深?yuàn)W的細(xì)節(jié)。
- 1 回答
- 0 關(guān)注
- 108 瀏覽
添加回答
舉報(bào)