关于全局变量global理解和疑惑?

blue7wings 2012-12-04 10:54:52
php刚刚起步,对global产生了疑问,然后自己试验了下:
function test()
{
global $a;
$a=10;
global $b;
$b=$a+10;
}
test();
echo $a."<br>";
echo $b."<br>";
?>

恩,效果很好,果然输出10 20.
然后我又这样写了下:
<?php
function test()
{
$a=10;
global $a;
$b=$a+10;
global $b;
}
test();
echo $a."<br>";
echo $b."<br>";
?>

这次就蛋疼了,为什么不报错也不提示,而是输出的是空白呢?
既然上全局变量,整个php文件都能用吧,我又进行了下面的测试:
global $c;
$c=7;
function test()
{
echo $c;
}
test();

然后提示,未定义变量.
是不是,定义了全局变量也不能在函数里面用?要想将值传给函数,只能通过参数的方式呢?
...全文
268 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
mu_rain 2012-12-04
  • 打赏
  • 举报
回复
加油~加油~加油~
happypiggy2010 2012-12-04
  • 打赏
  • 举报
回复
第一个例子,你是先定义全局变量,然后使用全局变量。 第二个例子,你是先定义本地变量,然后再定义全局变量。但是你赋值的时候是使用本地变量,所以出现了你所见到的问题。
小在在 2012-12-04
  • 打赏
  • 举报
回复
先定义变量 $a='aaa'; 函数中 function test() { global $a; //使用$a; }
xuzuning 2012-12-04
  • 打赏
  • 举报
回复
声明在前,使用在后 这是普遍的原则 global 是在函数中声明全局变量用的
luojxun 2012-12-04
  • 打赏
  • 举报
回复
<?php
function test()
{
    $a=10;      // 这个是局部变量以下同样
    global $a;  // 这里声明了全局变量,以后出现的$a就是全局变量$a了
                   // 在函数中使用全局变量都需要这样先声明一下否则默认为局部变量
    $b=$a+10;
    global $b;   
}

21,887

社区成员

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

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