PHP中global,$GLOBALS的比较

一直对这两个变量比较迷惑,今天写了一个程序,测试了一下,总算明白了。

    代码:

<?php $GLOBALS['test'] = "i am valid.";

function testFun1() {  echo "i am in testFun1().<br/>";

    echo '$GLOBALS is '.$GLOBALS['test'].'<br/>';

 unset($GLOBALS['test']);  echo '$GLOBALS is '.$GLOBALS['test'].'<br/>'; }

function testFun2() {  echo "i am in testFun2().".'<br/>';     global $test;

 $test = "changed";    echo '$GLOBALS is '.$GLOBALS['test'].'<br/>';

 unset($test);

 echo "global test is ".$test.'<br/>'  echo '$GLOBALS is '.$GLOBALS['test'].'<br/>'; }

testFun1(); testFun2(); ?>

结果:

i am in testFun1(). $GLOBALS is i am valid. $GLOBALS is i am in testFun2(). $GLOBALS is changed global test is $GLOBALS is changed


引用他人的一句话:

也就是说global $var其实就是$var = &$GLOBALS['var']。调用外部变量的一个别名而已

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章