global
global关键字如果用在function内部,则说明这个function内用的这个变量是全局的,全局变量就是在整个页面里都能起作用。例如
- $conf = 1;
- function conf_test() {
- global $conf;
- return ++$conf;
- }
- echo conf_test()."<br>";
- echo conf_test()."<br>";
输出:
2
3
如果没有global $conf;这句,输出就变成了全是1了。global起的作用就是,在function中,声明这个函数内用的$conf不是局部的,而是全局可用的。或者说,在函
数内部定义的这个$conf不是函数内的变量,而是这个函数外面(也就是指$conf = 1;)定义的那个$conf.其实这里如果用$GLOBALS数组,就比较容易理解了。我们在
页面声明一个变量$conf其实相当于在$GLOBALS数组中定义了一项$GLOBALS['conf'].而这个$GLOBALS是全局可见的。所以上面的代码制作成$GLOBALS格式的写法就是
- $conf = 1;
- function conf_test() {
- return ++$GLOBALS['conf'];
- }
- echo conf_test()."<br>";
- echo conf_test()."<br>";
输出:
2
3
第二个是static关键字
static就是表示静态。所谓的静态,其实是在function或者class内部而言的。function中static的变量,在funciton执行完之后,不会消失,可以在下次执行的时候
继续使用,好,还是先给用例子说明吧
- function conf_test() {
- static $conf = 1;
- return ++$conf;
- }
- echo conf_test()."<br>";
- echo conf_test()."<br>";
输出:
2
3
在这里,如果static $conf = 1改成$conf = 1,那么输出就变成了
2
2
在类中,static变量和这个例子中也一样,仅仅在类内部有效,并且会持续保持上次的值。