PHP static 关键词

定义和用法

static 关键字用于将类的属性和方法声明为静态的。静态属性和方法可以在不创建类的实例的情况下使用。

static 关键字还用于在函数中声明变量,这些变量在函数结束后会保留其值。

相关页面

教程:PHP OOP - 静态方法

教程:PHP OOP - 静态属性

实例

例子 1

创建和使用静态属性和方法:

<?php  
class MyClass {  
  // 声明一个公共静态属性  
  public static $str = "Hello World!";  
  
  // 声明一个公共静态方法  
  public static function hello() {  
    // 使用 self 关键字或类名来访问静态属性  
    echo self::$str;  
  }  
}  
  
// 直接通过类名访问静态属性  
echo MyClass::$str;  
echo "<br>";  
  
// 调用静态方法,该方法内部会访问静态属性并输出  
echo MyClass::hello();  
?>

亲自试一试

注意:在上面的 hello 方法中,我们使用 self::$str 来访问静态属性。当然,你也可以使用类名 MyClass::$str 来访问,如示例中的直接访问方式。不过,使用 self 关键字的好处是,如果类名发生更改,你只需在类定义中更改一次即可,而不需要在类的所有方法中更改。

例子 2

在函数中使用静态变量:

<?php  
function add1() {  
  // 声明一个静态变量,它会在函数调用之间保持其值  
  static $number = 0;  
  $number++;  
  return $number;  
}  
  
// 调用函数,输出 1  
echo add1();  
echo "<br>";  
  
// 再次调用函数,输出 2,因为静态变量保持了其值  
echo add1();  
echo "<br>";  
  
// 再次调用函数,输出 3  
echo add1();  
?>

亲自试一试

在这个例子中,add1 函数中的 $number 变量被声明为 static,这意味着它不会在函数调用结束时被销毁。相反,它的值会在函数调用之间持续存在,因此每次调用 add1 时都会增加并返回新的值。