静态变量(静态)

<强>一、静态变量

& lt; ?php

/* *

声明一个名为测试的函数,测试在函数内部声明的静态变量的使用

*/

功能测试(){

静态美元=0;

回声一美元;

+ +美元;

}

测试();,,,,,//第一次运行,输出0

测试();,,,,,//第二次运行,输出1

测试();,,,,,//第三次运行,输出2

测试();,,,,,//第四次运行,输出3

?在


,在上例中,将函数中的局部变量一美元,使用静态关键词声明为静态变量,并赋初值为0。函数在第一次执行时,静态变量一个美元经运算后,从初0变值为1。当函数第一次执行完毕后,静态变量一个美元并没有被释放,而是将结果保存在静态内存中第。二次执行时,一个从美元内存中获取上一次计算的结果,继续计算,并将结果2存于静态内存空间中。以后每次函数执行时,静态变量将从自己的静态内存空间中获取前次的储存结果,并以此为初值进行计算。


<强>二、静态关键字的使用

<强>,,强类中的静态成员是不需要对象而是使用类名来直接访问的,格式如下所示:

<强>类名::静态成员属性名,,,,//在类的外部和成员方法中都可以使用这种方式访问静态成员属,,,,,,,,,,,,,,,性

<强>类名::静态成员方法(),,,,//在类的外部和成员方法中都可以使用这种方式访问静态成员方,,,,,,,,,,,,,,,法

<强>

<强>,,强在类中声明的成员方法中,也可以使用关键字“自我”来访问其他静态成员。因为静态成员是属于类的,而不属于任何对象,所以不能用<强> $ this 来引用它,而在PHP中给我们提供的自我关键字,就是在类的成员方法中用来代表本类的关键字。格式如下所示:

<强>::静态成员属性名,,,,//在类的成员方法中使用这种方式访问本类中的静态成员属性

<强>::静态成员方法名();,,,//在类的成员方法中使用这种方式访问本类中的静态成员方法

& lt; ?php类MyClass {

静态美元计数;,,,,//在类中声明一个静态成员属性统计,用于统计对象被创建的次数


函数__construct () {,,//每次创建一个对象就会自动调用一次这个构造方法

self:: $计数+ +;,,,,//使用自我访问静态成员数,使其自增1

}


静态函数getCount () {,,//声明一个静态方法,在类外面直接使用类名就可以调用

返回self:: $计数;,,,//在方法中使用自我访问静态成员并返回

}

}

MyClass:: $ count=0;,,,,,,,//在类外面使用类名访问类中的静态成员,为其初始化赋值0


myc1美元=new MyClass ();,,,,,,//通过myclass类创建第一个对象,在构造方法中累将计数加1

$ myc2=new myclass ();,,,,,,//通过myclass类创建第二个对象,在构造方法中又累将计数加1

$ myc3=new myclass ();,,,,,,//通过myclass类创建第三个对象,在构造方法中再次累将计数加1


回声myclass:: getCount ();,,,//在类外面使用类名访问类中的静态成员方法,获取静态属性的值3

回声“& lt; br/祝辞”;

echo $ myc3→getCount ();,,,,//通过对象也可以访问类中的静态成员方法,获取静态属性的值3

?在

<强>代码运行结果为3 3

静态变量(静态)