PHPOOP-静的メソッド
PHP-静的メソッド
静的メソッドは、クラスのインスタンスを最初に作成することなく、直接呼び出すことができます。
静的メソッドは、次のstatic
キーワードで宣言されます。
構文
<?php
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();
?>
例の説明
ここでは、静的メソッドwelcome()を宣言します。次に、クラス名、二重コロン(::)、およびメソッド名を使用して静的メソッドを呼び出します(最初にクラスのインスタンスを作成することはありません)。
PHP-静的メソッドの詳細
クラスには、静的メソッドと非静的メソッドの両方を含めることができます。self
静的メソッドには、キーワードと二重コロン(::)を使用して、同じクラスのメソッドからアクセスできます。
例
<?php
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();
}
}
?>
子クラスから静的メソッドを呼び出すには、子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;
?>