Home >php教程 >php手册 >PHP unset全局变量运用问题详解

PHP unset全局变量运用问题详解

WBOY
WBOYOriginal
2016-06-13 11:11:141417browse

PHP中有个释放变量的语句叫做unset(从PHP4开始unset已经不再是一个函数了,而是一个语句),前几天用unset的时候出了点问题,于是把unset问题总结如下。如果您仔细阅读过PHP的手册,那么就没必要再看这篇文章了,这篇文章是写给看手册不用心的同学的。

首先要强调的一点是PHP unset全局变量在PHP中已经不再是一个函数了,既然不是函数,那么就没有了返回值,所以用的时候不能够用unset的返回值来做判断。

其次,在函数中,PHP unset全局变量只能销毁局部变量,并不能销毁全局变量,来看下手册的一个例子

<ol class="dp-xml">
<li class="alt"><span class="tag"> ?PHP  </span></li>
<li><span>function destroy_foo() {  </span></li>
<li class="alt"><span>global $foo;  </span></li>
<li><span>unset($foo);  </span></li>
<li class="alt"><span>}  </span></li>
<li>
<span>$</span><span class="attribute">foo</span><span> = ‘bar’;  </span>
</li>
<li class="alt"><span>destroy_foo();  </span></li>
<li><span>echo $foo;  </span></li>
<li class="alt">
<span class="tag">?></span><span> </span>
</li>
</ol>

返回的结果为

bar

为什么会这样呢?原因就是PHP unset全局变量在函数中只能销毁局部变量。如果在程序中需要用到销毁全局变量的应该如何做呢?也很简单,用$GLOBALS数组来实现。看下面的例子:

<ol class="dp-xml">
<li class="alt"><span class="tag"> ?PHP  </span></li>
<li><span>function foo() {  </span></li>
<li class="alt"><span>unset($GLOBALS['bar']);  </span></li>
<li><span>}  </span></li>
<li class="alt">
<span>$</span><span class="attribute">bar</span><span> = “something”;  </span>
</li>
<li><span>foo();  </span></li>
<li class="alt"><span>var_dump($bar);  </span></li>
<li>
<span class="tag">?></span><span> </span>
</li>
</ol>


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn