PHP unset全局變量運(yùn)用問(wèn)題詳解
PHP中語(yǔ)言中有些函數(shù)對(duì)于初學(xué)者來(lái)說(shuō)在字面上是很難理解的,需要在實(shí)際編碼中總結(jié)經(jīng)驗(yàn),來(lái)掌握這些知識(shí)。我們今天要為大家介紹的是PHP unset全局變量在使用中遇到的一些問(wèn)題。#t#
PHP中有個(gè)釋放變量的語(yǔ)句叫做unset(從PHP4開(kāi)始unset已經(jīng)不再是一個(gè)函數(shù)了,而是一個(gè)語(yǔ)句),前幾天用unset的時(shí)候出了點(diǎn)問(wèn)題,于是把unset問(wèn)題總結(jié)如下。如果您仔細(xì)閱讀過(guò)PHP的手冊(cè),那么就沒(méi)必要再看這篇文章了,這篇文章是寫給看手冊(cè)不用心的同學(xué)的。
首先要強(qiáng)調(diào)的一點(diǎn)是PHP unset全局變量在PHP中已經(jīng)不再是一個(gè)函數(shù)了,既然不是函數(shù),那么就沒(méi)有了返回值,所以用的時(shí)候不能夠用unset的返回值來(lái)做判斷。
其次,在函數(shù)中,PHP unset全局變量只能銷毀局部變量,并不能銷毀全局變量,來(lái)看下手冊(cè)的一個(gè)例子
- < ?PHP
- function destroy_foo() {
- global $foo;
- unset($foo);
- }
- $foo = ‘bar’;
- destroy_foo();
- echo $foo;
- ?>
返回的結(jié)果為
bar
為什么會(huì)這樣呢?原因就是PHP unset全局變量在函數(shù)中只能銷毀局部變量。如果在程序中需要用到銷毀全局變量的應(yīng)該如何做呢?也很簡(jiǎn)單,用$GLOBALS數(shù)組來(lái)實(shí)現(xiàn)。看下面的例子:
- < ?PHP
- function foo() {
- unset($GLOBALS['bar']);
- }
- $bar = “something”;
- foo();
- var_dump($bar);
- ?>






















