手册
目录
静态方法可以直接调用,而无需先创建类的实例。
静态方法使用 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()。然后,我们使用类名、双冒号 (::) 和方法名(无需先创建类的实例)来调用这个静态方法。
一个类可以既有静态方法也有非静态方法。静态方法可以在同一类的其他方法中使用 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 "w3school.com.cn";
}
}
class domainW3 extends domain {
public $websiteName;
public function __construct() {
$this->websiteName = parent::getWebsiteName();
}
}
$domainW3 = new domainW3;
echo $domainW3 -> websiteName;
?>
运行实例 »点击 "运行实例" 按钮查看在线实例
相关
视频
RELATED VIDEOS
科技资讯
1
2
3
4
5
6
7
8
9
精选课程
共5课时
17.3万人学习
共49课时
77.4万人学习
共29课时
62万人学习
共25课时
39.5万人学习
共43课时
71.3万人学习
共25课时
61.9万人学习
共22课时
23.1万人学习
共28课时
34.1万人学习
共89课时
125.8万人学习