PHP ООП - Статические методы
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
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;
?>
Попробуйте сами »