PHP OOP - Propiedades estáticas
PHP - Propiedades estáticas
Las propiedades estáticas se pueden llamar directamente, sin crear una instancia de una clase.
Las propiedades estáticas se declaran con la static
palabra clave:
Sintaxis
<?php
class ClassName {
public static $staticProp = "W3Schools";
}
?>
Para acceder a una propiedad estática, use el nombre de la clase, dos puntos dobles (::) y el nombre de la propiedad:
Sintaxis
ClassName::$staticProp;
Veamos un ejemplo:
Ejemplo
<?php
class
pi {
public static $value = 3.14159;
}
// Get static property
echo pi::$value;
?>
Ejemplo explicado
Aquí, declaramos una propiedad estática: $valor. Luego, hacemos eco del valor de la propiedad estática usando el nombre de la clase, dos puntos dobles (::) y el nombre de la propiedad (sin crear primero una clase).
PHP - Más sobre propiedades estáticas
Una clase puede tener propiedades tanto estáticas como no estáticas. Se puede acceder a una propiedad estática desde un método en la misma clase usando la self
palabra clave y dos puntos dobles (::):
Ejemplo
<?php
class
pi {
public static $value=3.14159;
public function
staticValue() {
return self::$value;
}
}
$pi = new pi();
echo $pi->staticValue();
?>
Para llamar a una propiedad estática desde una clase secundaria, use la parent
palabra clave dentro de la clase secundaria:
Ejemplo
<?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();
?>