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

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

WBOY
WBOY원래의
2016-06-13 11:11:141419검색

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>


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.