1. 静态属性和方法
静态属性
静态属性是属于类本身的属性,而不是某个实例的属性。它们可以通过类名直接访问,而不需要创建类的实例。
静态方法
静态方法是属于类本身的方法,同样不需要创建类的实例即可调用。静态方法内部不能访问类的非静态属性和非静态方法,只能访问静态属性和静态方法。
2. 静态绑定(Late Static Binding)
静态绑定允许在静态上下文中访问调用类(即实际运行时的类)。使用static::
关键字来实现。
3. 静态变量在函数中的作用域
在函数或方法中,可以使用static
关键字来定义静态局部变量。静态局部变量的生命周期是整个脚本的生命周期,而不是函数调用期间的生命周期。它们会在函数调用结束后保持其值,并在下次函数调用时继续使用这个值。
4. 静态内部类(PHP 5.3.0+)
PHP 5.3.0引入了匿名函数和闭包,可以在匿名函数或闭包中使用static
关键字来定义静态变量。
总结
- 静态属性和方法:属于类本身,不需要实例化即可访问。
- 静态绑定:使用
static::
在继承环境中访问调用类。 - 静态局部变量:在函数或方法中定义,生命周期是整个脚本期间。
- 闭包中的静态变量:在匿名函数或闭包中定义静态变量。