问一个GLOBALS的问题

haohaoxuexiphp 2011-08-01 11:58:28

function f2() {
$GLOBALS["v3"] = &$GLOBALS["v1"];
echo 'f2函数里:'."<br/>v1:".$v1."<br/>v3:".$v3;
}
$v1 = 5;
$v2 = $v3 = 0;
f2();

echo "<br/><br/>f2函数之后:<br/>";
echo "v1: ".$v1."<br/>";
echo "v3: ".$v3."<br/>";


输出:

f2函数里:
v1:
v3:

f2函数之后:
v1: 5
v3: 5


为什么在f2()的函数里,输出是没值的?
...全文
61 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
kyzy_yy_pm 2011-08-01
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ohmygirl 的回复:]

这样呢?
PHP code
<?php
function f2() {
GLOBAL $v3;
GLOBAL $v1;
$v1=&$v3;
echo 'f2函数里:'."<br/>v1:".$v1."<br/>v3:".$v3;
}
$v1 = 5;
$v2 = $v3 = 0;
f2();

echo "<br/><br/>f2函数之后:<b……
[/Quote]

++

这样就可以解决变量作用域的问题了
ohmygirl 2011-08-01
  • 打赏
  • 举报
回复
这样呢?
<?php
function f2() {
GLOBAL $v3;
GLOBAL $v1;
$v1=&$v3;
echo 'f2函数里:'."<br/>v1:".$v1."<br/>v3:".$v3;
}
$v1 = 5;
$v2 = $v3 = 0;
f2();

echo "<br/><br/>f2函数之后:<br/>";
echo "v1: ".$v1."<br/>";
echo "v3: ".$v3."<br/>";

?>
kyzy_yy_pm 2011-08-01
  • 打赏
  • 举报
回复
php从上到下执行的

echo 'f2函数里:'."<br/>v1:".$v1."<br/>v3:".$v3;这个上面并没有$v1、$v3所以不能输出,其实已经出现notice了
ohmygirl 2011-08-01
  • 打赏
  • 举报
回复
哈,回答完之后才发现楼主问的不是这个问题。sorry......
ygc2022 2011-08-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 kyzy_yy_pm 的回复:]
php从上到下执行的

echo 'f2函数里:'."<br/>v1:".$v1."<br/>v3:".$v3;这个上面并没有$v1、$v3所以不能输出,其实已经出现notice了
[/Quote]

原因是这个。在这个函数里,没有这个变量。
可以这样:

function f2() {
$GLOBALS["v3"] = &$GLOBALS["v1"];
$v1 = $GLOBALS["v1"];
$v3 = $GLOBALS["v3"];
echo 'f2函数里:'."<br/>v1:".$v1."<br/>v3:".$v3;
}
haohaoxuexiphp 2011-08-01
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ohmygirl 的回复:]

这样呢?
PHP code
<?php
function f2() {
GLOBAL $v3;
GLOBAL $v1;
$v1=&$v3;
echo 'f2函数里:'."<br/>v1:".$v1."<br/>v3:".$v3;
}
$v1 = 5;
$v2 = $v3 = 0;
f2();

echo "<br/><br/>f2函数之后:<b……
[/Quote]
答非所问!

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧