1、在函数内部使用global关键字定义的变量可以成为全局变量,如果该变量已经被定义了,那么他的值就是原来的值,否则就是一个新的全局变量(一句话:已存在就不再创建):
1 <?php
2 $a=1;
3 function run(){
4 global $a;
5 $a=10;
6 $a++;
7 }
8 run();
9 echo "Global variable a=$a \n";
10 $b=100;
11 function run1(){
12 $b=10;
13 $b+=10;
14 }
15 run1();
16 echo "variable b=$b\n";
17 function run2(){
18 global $c;
19 $c=10;
20 function innerRun0(&$c){
21 $c=20;
22 }
23 innerRun0($c);
24 var_dump($c);
25 function innerRun1(){
26 global $c;
27 $c=30;
28 }
29 innerRun1();
30 var_dump($c);
31 }
32 run2();
33 ?>
输出结果:
Global variable a=11
variable b=100
int(20)
int(30)
如果在函数内部嵌套定义了另外一个函数,要想使用并改变父类函数中变量中的值,可以使用引用传递的方式(可以理解成C++中的引用);
2.static和c语言中的static使用方式是一样的,函数中使用它之后,当函数执行完毕之后,该变量的空间不会被立即回收,而且只被初始化一次:
1 function run(){
2 static $a=10;
3 $a++;
4 var_dump($a);
5 }
6 run();
7 run();
8 run();
输出结果:
int(11)
int(12)
int(13)
3、local顾名思义,就是局部变量。在函数内部声明得得变量就是局部量量,意思就是他的访问范围是在该函数内部。对应的是global变量,实在函数外部定义的变量,可以全局访问,如果在一个函数内部想要访问到全局变量的话可以使用global,具体方式上面已经提到;还可以使用GLOBALS['globalValueName']。
原文链接: https://www.cnblogs.com/guanking19/p/5468276.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/233053
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!