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();然后提示,未定义变量.
是不是,定义了全局变量也不能在函数里面用?要想将值传给函数,只能通过参数的方式呢?

解决方案 »

  1.   

    声明在前,使用在后
    这是普遍的原则global 是在函数中声明全局变量用的
      

  2.   

    先定义变量 $a='aaa';函数中 
    function test()
    {
      global $a;
      //使用$a;
    }
      

  3.   

    <?php
    function test()
    {
        $a=10;      // 这个是局部变量以下同样
        global $a;  // 这里声明了全局变量,以后出现的$a就是全局变量$a了
                       // 在函数中使用全局变量都需要这样先声明一下否则默认为局部变量
        $b=$a+10;
        global $b;   
    }