PHP OOP - 静态属性

PHP - 静态属性

静态属性可以直接调用,而无需先创建类的实例。

静态属性使用 static 关键字声明:

语法

<?php
class ClassName {
  public static $staticProp = "W3School";
}
?>

如需访问静态属性,请使用类名、双冒号 (::) 和属性名:

语法

ClassName::$staticProp;

让我们看一个例子:

实例

<?php
class pi {
  public static $value = 3.14159;
}

// Get static property
echo pi::$value;
?>

亲自试一试

例子解释

在这里,我们声明了一个静态属性:$value。然后,我们使用类名、双冒号 (::) 和属性名(无需先创建类)来输出静态属性的值。

PHP - 关于静态属性的更多信息

一个类可以既有静态属性也有非静态属性。静态属性可以在同一类的其他方法中使用 self 关键字和双冒号 (::) 来访问:

实例

<?php
class pi {
  public static $value=3.14159;
  public function staticValue() {
    return self::$value;
  }
}

$pi = new pi();
echo $pi->staticValue();
?>

亲自试一试

要从子类调用静态属性,请在子类内部使用 parent 关键字:

实例

<?php
class pi {
  public static $value=3.14159;
}

class x extends pi {
  public function xStatic() {
    return parent::$value;
  }
}

// 直接通过子类获取静态属性的值
echo x::$value;

// 或者通过 xStatic() 方法获取静态属性的值
$x = new x();
echo $x->xStatic();
?>

亲自试一试