<强>一、静态变量强>
& 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
强>