PHP OOP - Propriedades estáticas
PHP - Propriedades estáticas
Propriedades estáticas podem ser chamadas diretamente - sem criar uma instância de uma classe.
Propriedades estáticas são declaradas com a static
palavra-chave:
Sintaxe
<?php
class ClassName {
public static $staticProp = "W3Schools";
}
?>
Para acessar uma propriedade estática, use o nome da classe, dois-pontos duplos (::) e o nome da propriedade:
Sintaxe
ClassName::$staticProp;
Vejamos um exemplo:
Exemplo
<?php
class
pi {
public static $value = 3.14159;
}
// Get static property
echo pi::$value;
?>
Exemplo explicado
Aqui, declaramos uma propriedade estática: $value. Em seguida, ecoamos o valor da propriedade estática usando o nome da classe, dois-pontos duplos (::) e o nome da propriedade (sem criar uma classe primeiro).
PHP - Mais sobre propriedades estáticas
Uma classe pode ter propriedades estáticas e não estáticas. Uma propriedade estática pode ser acessada de um método na mesma classe usando a palavra- self
chave e dois pontos (::):
Exemplo
<?php
class
pi {
public static $value=3.14159;
public function
staticValue() {
return self::$value;
}
}
$pi = new pi();
echo $pi->staticValue();
?>
Para chamar uma propriedade estática de uma classe filha, use a palavra- parent
chave dentro da classe filha:
Exemplo
<?php
class
pi {
public static $value=3.14159;
}
class x extends pi {
public function xStatic() {
return
parent::$value;
}
}
// Get value of static property
directly via child class
echo x::$value;
// or get value of static property via xStatic()
method
$x = new x();
echo $x->xStatic();
?>