PHP OOP - 静态方法
PHP - 静态方法
静态方法可以直接调用 - 无需先创建类的实例。
静态方法使用 static
关键字声明
语法
<?php
class ClassName {
public static function staticMethod() {
echo "Hello World!";
}
}
?>
要访问静态方法,请使用类名、双冒号 (::) 和方法名
语法
ClassName::staticMethod();
让我们来看一个例子
示例
<?php
class greeting {
public static function welcome() {
echo "Hello World!";
}
}
// 调用静态方法
greeting::welcome();
?>
亲自尝试 »
示例解释
这里,我们声明了一个静态方法:welcome()。然后,我们通过使用类名、双冒号 (::) 和方法名来调用静态方法(无需先创建类的实例)。
PHP - 关于静态方法的更多信息
一个类可以同时拥有静态方法和非静态方法。在同一个类的方法中,可以使用 self
关键字和双冒号 (::) 来访问静态方法。
示例
<?php
class greeting {
public static function welcome() {
echo "Hello World!";
}
public function __construct() {
self::welcome();
}
}
new greeting();
?>
亲自尝试 »
也可以从其他类的方法中调用静态方法。为此,静态方法需要是 public
的。
示例
<?php
class A {
public static function welcome() {
echo "Hello World!";
}
}
class B {
public function message() {
A::welcome();
}
}
$obj = new B();
echo $obj -> message();
?>
亲自尝试 »
要从子类中调用静态方法,可以使用子类中的 parent
关键字。在此情况下,静态方法可以是 public
或者 protected
的。
示例
<?php
class domain {
protected static function getWebsiteName() {
return "W3Schools.com";
}
}
class domainW3 extends domain {
public $websiteName;
public function __construct() {
$this->websiteName = parent::getWebsiteName();
}
}
$domainW3 = new domainW3;
echo $domainW3 -> websiteName;
?>
亲自尝试 »