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;
?>
自己動手試一試 »