关于global的问题

这是以前在QQ问问里看到的提问,当时试了一下,也没弄明白,就到phpchina里问了一下,结果被告知是手册里的原例子,崩溃.
现在整理过来,方便自己以后复习.

代码如下:
<?php
$var1 = “Example variable”
;
$var2 = “”
;
function
global_references($use_globals
)
{
global
$var1,$var2
;
if (!
$use_globals
) {
$var2 =& $var1;
// visible only inside the function
//2
//$var2 = $var1;
} else {
$GLOBALS[“var2”] =& $var1;
// visible also in global context
}

}
global_references(false);
echo
“var2 is set to ‘$var2’
;
// var2 is set to ”
//2    var2 is set to ‘Example variable’;
global_references(true
);
echo
“var2 is set to ‘$var2’
;
// var2 is set to ‘Example variable’
?>

下面是网友提供的手册截图,在此感谢帮助我的 山鸡兄和krewson.

手册上是这样说的:

Warning
如果在一个函数内部给一个声明为 global 的变量赋于一个引用,该引用只在函数内部可见。可以通过使用 $GLOBALS 数组避免这一点。

发表评论

返回顶部