php 中的 global 与 $GLOBALS[]

global在函数产生 一个指向函数外部变量的别名 变量,而不是真正的函数外部变量,一但转变了别名 变量的指向地址,就会产生一些意料不到情况 ,例如例子1.

$GLOBALS[]确确凿实调用是外部的变量,函数内外会始终维持一致!

可以对照 下面两个列子:

global:

<?php

function myfunction(){

global$bar;

unset($bar);

}

$bar="someting";

myfunction();

echo$bar;

?>

输出:someting

$global[]:

<?php

functionfoo()

{

unset($GLOBALS['bar']);

}

$bar = "something";

foo();

echo$bar;

?>

输出:空

相关推荐