声明类成员或方法是静态的,它可以无需实例化的类直接访问。静态成员(除了静态方法)不能由一个对象访问。

In order to be compatible with PHP4, if no visibility is specified, the properties and methods are default to public.

因为静态方法不需要通过对象调用,所以伪变量$在静态方法中不可用。

对象的静态属性不能通过- >操作符访问。

使用::一个调用非静态方法会导致一个e_strict水平误差的方法。

与所有其他PHP静态变量一样,静态属性只能初始化为字符值或常量,不能使用表达式。因此,可以将静态属性初始化为整数或数组,但不能指向另一个变量或函数的返回值或指向对象。

php5.3.0后,我们可以用一个变量来动态调用类。但该变量的值不是自我,父母,或静态的关键词。

1例#静态成员的代码示例


< PHP
类Foo
{
公共静态my_static美元= 'foo;
公共功能staticvalue(){
回归自我::my_static美元;
}
}
类杆延伸Foo
{
公共功能foostatic(){
返回父::my_static美元;
}
}
打印foo::my_static美元。;
$ =新富();
印刷美元-> staticvalue foo()。
打印变量$foo -> my_static。; / /未定义的财产my_static
美元:美元my_static Foo:打印。;
美元'foo类名=;
打印类名::my_static美元美元。; / / PHP 5.3.0后动态调用
打印条码::my_static美元。;
新栏();
打印条形码> foostatic(美元)。
>


2例#静态方法的代码示例


< PHP
类Foo {
公共静态函数astaticmethod(){

}
}
::astaticmethod foo();
美元'foo类名=;
类名::astaticmethod美元(作为); / / PHP 5.3.0
>


静态和静态方法综述

静态变量

静态变量是只存在于函数作用域中的变量。但是,在执行函数之后,这个变量的值不会丢失。也就是说,当函数调用下一个变量时,变量仍然会记住原始值。

在类中,静态关键字有两个主要用途,一个是定义静态成员,另一个用于定义静态方法。

静态方法

静态和非静态方法之间有一个重要的区别:当调用静态方法时,不需要有类的实例。

静态和非静态方法的原理是:首先,如果一个方法不包含$这个变量,它应该是静态的。如果我们不需要的类的实例,我们还可以使用静态类,这样我们可以避免实例化类。此外,$this变量不能用于静态方法,因为静态方法不属于一个特定的实例。