PHP OOP - Métodos Estáticos
PHP - Métodos Estáticos
Los métodos estáticos se pueden llamar directamente, sin crear primero una instancia de la clase.
Los métodos estáticos se declaran con la static
palabra clave:
Sintaxis
<?php
class ClassName {
public static function staticMethod() {
echo "Hello World!";
}
}
?>
Para acceder a un método estático, use el nombre de la clase, dos puntos dobles (::) y el nombre del método:
Sintaxis
ClassName::staticMethod();
Veamos un ejemplo:
Ejemplo
<?php
class
greeting {
public static function
welcome() {
echo "Hello World!";
}
}
// Call static method
greeting::welcome();
?>
Ejemplo explicado
Aquí, declaramos un método estático: bienvenido(). Luego, llamamos al método estático usando el nombre de la clase, dos puntos dobles (::) y el nombre del método (sin crear primero una instancia de la clase).
PHP - Más sobre métodos estáticos
Una clase puede tener métodos estáticos y no estáticos. Se puede acceder a un método estático desde un método en la misma clase usando la self
palabra clave y dos puntos dobles (::):
Ejemplo
<?php
class greeting {
public static function welcome() {
echo "Hello World!";
}
public function __construct()
{
self::welcome();
}
}
new
greeting();
?>
Los métodos estáticos también se pueden llamar desde métodos de otras clases. Para hacer esto, el método estático debe ser public
:
Ejemplo
<?php
class
greeting {
public static function
welcome() {
echo "Hello World!";
}
}
class
SomeOtherClass {
public function
message() {
greeting::welcome();
}
}
?>
Para llamar a un método estático desde una clase secundaria, use la parent
palabra clave dentro de la clase secundaria. Aquí, el método estático puede ser public
o protected
.
Ejemplo
<?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;
?>