php 函数内引用全局变量

<?php$var1="Examplevariable";$var2="";functionglobal_references($use_globals){global$... <?php
$var1 = "Example variable";
$var2 = " ";

function global_references($use_globals)
{
global $var1, $var2;
if (!$use_globals) {
$var2 =& $var1; // visible only inside the function///???
} else {
$GLOBALS["var2"] =& $var1; // visible also in global context
}
}

global_references(false);
echo "var2 is set to '$var2'\n"; // var2 is set to ''
global_references(true);
echo "var2 is set to '$var2'\n"; // var2 is set to 'Example variable'
?>
把 global $var2; 当成是 $var2 =& $GLOBALS['var2']; 的简写。从而将其它引用赋给 $var2 只改变了本地变量的引用。
把 global $var2; 当成是 $var1 =& $GLOBALS['var1']; 的简写。从而将其它引用赋给 $var2 只改变了本地变量的引用。
问:$var2 =& $var1; // visible only inside the function///???这句虽然改变了var2的引用,可这个引用是va1啊,va1不是引用外部变量吗,所以va2是也应是引用外部变量到了外部应仍然有用,怎么只能在内部用。
展开
 我来答
百度网友0c90796
2010-08-23 · TA获得超过1611个赞
知道大有可为答主
回答量:2638
采纳率:0%
帮助的人:1086万
展开全部
<?php
$var1 = "Example variable";
$var2 = " ";

function global_references($use_globals)
{
global $var1, $var2;
if (!$use_globals) {
$var2 =& $var1; // visible only inside the function///???
} else {
$GLOBALS["var2"] =& $var1; // visible also in global context
}
}

global_references(false);//变量$var2赋值为对$var1的引用,但是它的值在函数外不可见,他是一个局部变量
echo "var2 is set to '$var2'\n<br>";
global_references(true);//将$var2注册到全局变量数组中赋值为对变量$var1的引用,他是全局可见的
echo "var2 is set to '$var2'\n";
?>

参考资料: phptogether.com

喜欢选择的
2010-08-19 · TA获得超过367个赞
知道小有建树答主
回答量:356
采纳率:0%
帮助的人:346万
展开全部
在函数内部 var2是局部变量,函数结束的时候会释放掉这个变量。 函数内部的var2和外部的var2不是一回事
其实global var 这样的语句可以这样看:
$var = &$GLOBALS['var']; // 左操作数申请新变量
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式