PHP OOP - Métodos estáticos
PHP - Métodos estáticos
Métodos estáticos podem ser chamados diretamente - sem primeiro criar uma instância da classe.
Métodos estáticos são declarados com a static
palavra-chave:
Sintaxe
<?php
class ClassName {
public static function staticMethod() {
echo "Hello World!";
}
}
?>
Para acessar um método estático, use o nome da classe, dois pontos duplos (::) e o nome do método:
Sintaxe
ClassName::staticMethod();
Vejamos um exemplo:
Exemplo
<?php
class
greeting {
public static function
welcome() {
echo "Hello World!";
}
}
// Call static method
greeting::welcome();
?>
Exemplo explicado
Aqui, declaramos um método estático: welcome(). Em seguida, chamamos o método estático usando o nome da classe, dois-pontos duplos (::) e o nome do método (sem criar uma instância da classe primeiro).
PHP - Mais sobre métodos estáticos
Uma classe pode ter métodos estáticos e não estáticos. Um método estático pode ser acessado de um método na mesma classe usando a palavra- self
chave e dois pontos (::):
Exemplo
<?php
class greeting {
public static function welcome() {
echo "Hello World!";
}
public function __construct()
{
self::welcome();
}
}
new
greeting();
?>
Métodos estáticos também podem ser chamados de métodos em outras classes. Para fazer isso, o método estático deve ser public
:
Exemplo
<?php
class
greeting {
public static function
welcome() {
echo "Hello World!";
}
}
class
SomeOtherClass {
public function
message() {
greeting::welcome();
}
}
?>
Para chamar um método estático de uma classe filha, use a palavra- parent
chave dentro da classe filha. Aqui, o método estático pode ser public
ou protected
.
Exemplo
<?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;
?>