第七类7的静态成员
静态属性包含封装在类中的数据,这些数据可以由所有类的实例共享。事实上,除了属于固定类和限制访问模式之外,类的静态属性非常类似于函数的全局变量。
我们使用静态计数器:下面的例子中的属性。属于计数器类,不属于任何计数器实例。你不能用这个来引用它,但是你可以使用自我或者其他有效的命名表达式。在这个例子中,getCount方法返回的自我:$计数,而不是反::$计数。
静态方法实现了类需要封装的函数,与特定对象无关。静态方法非常类似于全局函数。静态方法可以完全访问类中的属性,或者可以通过对象的实例来访问,不论访问限定符。
6.3例,getCount调用常用的一种方法。> php来构建这个变量,虽然不使用方法。然而,getCount不属于任何对象。在某些情况下,我们甚至希望在没有有效对象调用的情况下,您应该使用静态方法。PHP将在静态方法中建立这些变量,即使您从一个对象调用它们。
从6.7例6.3 getCount改变静态方法。static关键字可以停止实例->调用getCount算子,但PHP不会在方法建立的变量。如果使用这个>调用,将是错误的。
6.3示例引用了第四部分——构造函数和析构函数的示例(请参阅前面的文章)。通过比较这两个例子,你可以很好地掌握它。
静态方法与普通方法的区别。
你可以写一个方法判断这个是否是为了显示它是静态的还是非静态的。当然,如果使用静态关键字,不管它是如何调用的,这个方法总是静态的。
您的类也可以定义常量属性,不需要使用公共静态,只使用const关键字。常量属性总是静态的。它们的属性的类,而不是实例化这个类的对象的属性。
清单6.7静态成员
类反
{
私有静态值= 0;
常量版本= 2;
__construct()函数
{
自我::$ + +;
}
__destruct()函数
{
自我数;
}
静态函数getCount()
{
返回自我;
}
};
/ /创建一个实例,然后__construct()将执行
$ =新计数器();
1 输出
打印(反::getCount()。
;
版本属性输出类
打印(使用的版本:。计数器::版本。
;
>