在PHP中,关键字static
用于定义静态成员,包括静态属性和静态方法。
- 静态属性:静态属性是属于类的,而不是属于类的实例。可以通过
self::
或类名::
来访问静态属性。定义静态属性时,需要在属性名前面加上static
关键字。例如:
class MyClass { public static $count = 0; public function __construct() { self::$count++; } } echo MyClass::$count; // 输出:0 $obj1 = new MyClass(); $obj2 = new MyClass(); echo MyClass::$count; // 输出:2
- 静态方法:静态方法是属于类的,而不是属于类的实例。可以通过
self::
或类名::
来调用静态方法。定义静态方法时,需要在方法名前面加上static
关键字。静态方法只能访问静态属性,不能访问非静态属性。例如:
class MathUtils {
public static function add($num1, $num2) {
return $num1 + $num2;
}
}
echo MathUtils::add(2, 3); // 输出:5
注意:静态成员可以在不创建类的实例的情况下直接访问,但也可以通过类的实例来访问。如果通过类的实例访问静态成员,也会对所有实例共享该静态成员。