PHP - Статические методы
Ключевое слово
static используется для создания статических методов и свойств.
К статическим методам можно получить доступ напрямую — без предварительного создания экземпляра класса.
Объявление статического метода
Чтобы добавить статический метод в класс, используйте ключевое слово
static:
class ИмяКласса {
public static function статическийМетод() {
echo "Привет мир!";
}
}
Доступ к статическому методу
Чтобы получить доступ к статическому методу, укажите имя класса, затем двойное двоеточие (::) и имя метода:
ИмяКласса::статическийМетод();
В следующем примере мы объявляем статический метод: welcome(). Затем мы обращаемся к статическому методу напрямую, используя имя класса, двойное двоеточие (::) и имя метода (без предварительного создания экземпляра класса):
Пример
<?php
class
greeting {
// статический метод
public static function
welcome() {
echo "Привет мир!";
}
}
// Вызов статического метода напрямую
greeting::welcome();
?>
Попробуйте сами »
В следующем примере мы объявляем статический метод: sum(). Затем мы обращаемся к статическому методу напрямую, используя имя класса, двойное двоеточие (::) и имя метода:
Пример
<?php
class calc {
// статический метод
public static
function sum($x, $y) {
return $x * $y;
}
}
// Вызов статического метода
$res = calc::sum(6, 4);
echo $res;
?>
Попробуйте сами »
PHP - Подробнее о статических методах
Класс может иметь как статические, так и нестатические методы. К статическому методу можно получить доступ из метода того же класса, используя ключевое слово self и двойное двоеточие (::):
Пример
<?php
class greeting {
// статический метод
public static function welcome() {
echo "Привет мир!";
}
// нестатический метод
public function __construct()
{
self::welcome();
}
}
new
greeting();
?>
Попробуйте сами »
Статические методы также могут вызываться из методов в других классах. Для этого статический метод должен быть
public:
Пример
<?php
class
A {
public static function
welcome() {
echo "Привет мир!";
}
}
class
B {
public function
message() {
A::welcome();
}
}
$obj = new B();
echo $obj ->
message();
?>
Попробуйте сами »
Чтобы вызвать статический метод из дочернего класса, используйте ключевое слово parent внутри дочернего класса. Здесь статический метод может быть
public или protected.
Пример
<?php
class domain {
protected static function
getWebsiteName() {
return "Schoolsw3.com";
}
}
class domainW3 extends domain {
public $websiteName;
public function __construct() {
$this->websiteName =
parent::getWebsiteName();
}
}
$domainW3 = new domainW3;
echo $domainW3 -> websiteName;
?>
Попробуйте сами »