PHP OOP - statické metody
PHP - statické metody
Statické metody lze volat přímo – bez předchozího vytvoření instance třídy.
Statické metody jsou deklarovány pomocí static
klíčového slova:
Syntax
<?php
class ClassName {
public static function staticMethod() {
echo "Hello World!";
}
}
?>
Pro přístup ke statické metodě použijte název třídy, dvojtečku (::) a název metody:
Syntax
ClassName::staticMethod();
Podívejme se na příklad:
Příklad
<?php
class
greeting {
public static function
welcome() {
echo "Hello World!";
}
}
// Call static method
greeting::welcome();
?>
Příklad vysvětlen
Zde deklarujeme statickou metodu: welcome(). Poté zavoláme statickou metodu pomocí názvu třídy, dvojtečky (::) a názvu metody (aniž bychom nejprve vytvořili instanci třídy).
PHP – více o statických metodách
Třída může mít statické i nestatické metody. Ke statické metodě lze přistupovat z metody ve stejné třídě pomocí self
klíčového slova a dvojtečky (::):
Příklad
<?php
class greeting {
public static function welcome() {
echo "Hello World!";
}
public function __construct()
{
self::welcome();
}
}
new
greeting();
?>
Statické metody lze také volat z metod v jiných třídách. Chcete-li to provést, statická metoda by měla být public
:
Příklad
<?php
class
greeting {
public static function
welcome() {
echo "Hello World!";
}
}
class
SomeOtherClass {
public function
message() {
greeting::welcome();
}
}
?>
Chcete-li volat statickou metodu z podřízené třídy, použijte parent
klíčové slovo uvnitř podřízené třídy. Zde může být statická metoda public
nebo protected
.
Příklad
<?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;
?>