新手问:关于global和static的函数内区别

关于global和static的函数内区别?我不是很清楚,我知道2个都是在将函数值静态化使下次调用变量值是上次的调用变量的值,我想知道他们的区别是什么?还有一个疑问既然是全局变量,函数内的变量我在函数外无法调用。在php中是否有办法调用函数内申明的变量?

作者: jtlzhang   发布时间: 2011-07-25

你是问在函数体内global和static的区别吗?
$a=100;
function demo(){
     static $b=1;
     $b++;
      echo $b.'<br>';
     global $a;//声明该函数体下边用的$a是全局变量,即上边声明的$a;
     echo $a.'<br>';
}

//在下边调用三次demo
demo();
demo();
demo();
如果去掉static,在$b一直是2,加上static后$b可以累加

作者: 白老师   发布时间: 2011-07-26

函数体内声明全局变量的方法
function demo2(){
    $GLOBALS['www']=10000000;//中括号里的'www'即为该变量的名称,在外边加上$符即可访问
}
demo2();//调用一次函数里边声明的变量才有效
echo $www;

作者: 白老师   发布时间: 2011-07-26

谢谢老师明白了

作者: jtlzhang   发布时间: 2011-07-26