全局变量、局部变量以及静态变量
前面我们谈过变量的几大种类:bool变量、整型变量、字符串变量、浮点型变量等等。本节再来从变量的功能再来谈谈变量:全局变量、局部变量以及静态变量。(提示:PHP中变量名是区分大小写的,而其它如函数名类名等是不区分大小写的)
1、全局变量。
全局变量也称为外部变量,它是在函数外部定义的变量。 它不属于哪一个函数,它属于一个源程序文件。其作用域是从定义该变量的位置开始至源文件结束。php中的函数要想调用全局变量有两种方法:(1)在变量前加global ;(2)使用全局数组GLOBAL["变量名"] 。通过下面的实例可以了解到全局变量怎样使用:
<?php$a=99;
$b=88; function table() { global $a; //通过global关键字来调用全局变量 $GLOBALS['b']=188; //通过超全局数组来调用全局变量,并更改变量$b的值为188; $a=100; 把变量$a的值改成100; // $b=188; } table(); //调用函数 echo $a; //输出$a的值 echo "<br>"; echo $b;//输出$b的值 ?> |
输出结果为:100 188
2、局部变量。
上面的实例中,如果不使用关键字global和全局数组,而是直接更改函数里面的变量值,那么函数里的变量就变成了局部变量,也就是说函数结束后,这些变量就被释放了,不存在了。所以,也就影响不了开头定义的全局变量的值了。那么,输出结果就是原来的值:99 88 。也就是说,局部变量出了函数,就不起作用了。
3、静态变量。
静态变量只存在于函数作用域内,也就是说,静态变量只存活在栈中。一般的函数内变量在函数结束后会释放,比如局部变量,但是静态变量却不会。就是说,下次再调用这个函数的时候,该变量的值会保留下来。只要在变量前加上关键字static,该变量就成为静态变量了。下面,我通过一个小实例来做下说明:
<?phpfunction table()
{ static $a=0; //定义了一个静态变量,并赋值为0; echo $a; //先输出变量 echo "<br>"; $a++; //再自加1 } table(); table(); table(); table(); ?> |
输出 的结果就是: 0 1 2 3 。如果不定义成静态,那么每次输出都会是0,那是因为在自加前就已经输出了变量的值。
文章作者:高时银博客
本文地址:http://wanlimm.com/7720140126936.html
版权所有 © 转载时必须以链接形式注明作者和原始出处!