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