global,local,static的区别

1、在函数内部使用global关键字定义的变量可以成为全局变量,如果该变量已经被定义了,那么他的值就是原来的值,否则就是一个新的全局变量(一句话:已存在就不再创建):

     <?php
$a=1;
function run(){
global $a;
$a=10;
$a++;
}
run();
echo "Global variable a=$a \n";
$b=100;
function run1(){
$b=10;
$b+=10;
}
run1();
echo "variable b=$b\n";
function run2(){
global $c;
$c=10;
function innerRun0(&$c){
$c=20;
}
innerRun0($c);
var_dump($c);
function innerRun1(){
global $c;
$c=30;
}
innerRun1();
var_dump($c);
}
run2();
?>

输出结果:

Global variable a=11
variable b=100
int(20)
int(30)

 如果在函数内部嵌套定义了另外一个函数,要想使用并改变父类函数中变量中的值,可以使用引用传递的方式(可以理解成C++中的引用);

2.static和c语言中的static使用方式是一样的,函数中使用它之后,当函数执行完毕之后,该变量的空间不会被立即回收,而且只被初始化一次:

  function run(){
static $a=10;
$a++;
var_dump($a);
}
run();
run();
run();

输出结果:

 int(11)
int(12)
int(13)

 3、local顾名思义,就是局部变量。在函数内部声明得得变量就是局部量量,意思就是他的访问范围是在该函数内部。对应的是global变量,实在函数外部定义的变量,可以全局访问,如果在一个函数内部想要访问到全局变量的话可以使用global,具体方式上面已经提到;还可以使用GLOBALS['globalValueName']。

上一篇:Android Activity的加载模式和onActivityResult方法之间的冲突


下一篇:O365(世纪互联)SharePoint 之使用列表库发布新闻