global, $GLOBALS[]

// global在函数中产生一个指向函数外部变量的别名变量,而不是真正的函数外部变量,一旦改变了别名的变量指向地址,就会发生一些意外的情况

$a = 10;
function test()
{
    global $a;
    echo $a; // 10
    unset($a);
}
test(); // 10
echo $a; // 10

// $GLOBALS[] 确实是调用外部的变量,函数内外始终保持一致
// $GLOBALS:由所有定义全局变量组成的数组,变量名就是该数组的索引
$a = 100;
function test()
{
    $GLOBALS['a'] = 9; // 该数组$GLOBALS下标名就是 全局变量名
}
test();
echo $a; // 9

$arr['lin'] = 100;
echo $GLOBALS['arr']['lin']; // 100

  

posted @ 2014-08-11 23:18  好记性还真不如烂笔头  阅读(193)  评论(0编辑  收藏  举报