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