PHP Propiedades Estáticas
Internet > PHP > Program. Objetos
Propiedades Estáticas en PHP
En la Programación Orientada a Objetos (OOP) en PHP, las propiedades estáticas son variables que pertenecen a la clase en sí, no a los objetos creados a partir de esa clase. Esto significa que puedes acceder a estas propiedades directamente utilizando el nombre de la clase, sin necesidad de crear instancias.
¿Qué es una Propiedad Estática en PHP?
Una propiedad estática es una variable que se declara en una clase con la palabra clave static y que puede ser accedida directamente mediante el nombre de la clase. Esto es útil para valores que deben ser compartidos entre todas las instancias de una clase, como constantes o contadores globales.
Sintaxis de una Propiedad Estática:
<?php
class ClaseEjemplo {
public static $propiedadEstatica = "Valor inicial";
}
Para acceder a una propiedad estática, se utiliza la notación con doble dos puntos :::
<?php
echo ClaseEjemplo::$propiedadEstatica;
?>
Ejemplo básico de una propiedad estática en PHP
A continuación, se muestra un ejemplo donde se utiliza una propiedad estática:
<?php
class Contador {
public static $conteo = 0;
public static function incrementar() {
self::$conteo++;
}
}
// Incrementar el contador
Contador::incrementar();
Contador::incrementar();
// Mostrar el valor del contador
echo "Valor del contador: " . Contador::$conteo;
?>
Explicación del código
Propiedad estática $conteo: Se utiliza para almacenar el número de veces que se ha incrementado.
Método estático incrementar(): Aumenta el valor de la propiedad estática $conteo cada vez que se llama.
Acceso directo: Se accede a la propiedad estática y al método directamente desde la clase, sin necesidad de instanciarla.
Propiedades Estáticas en Clases con Métodos No Estáticos
Una clase puede contener tanto propiedades estáticas como no estáticas. Las propiedades estáticas pueden ser accedidas desde métodos no estáticos utilizando la palabra clave self.
Ejemplo: Propiedad estática accedida desde un método no estático
<?php
class Configuracion {
public static $modo = "producción";
public function mostrarModo() {
return "El sistema está en modo: " . self::$modo;
}
}
$config = new Configuracion();
echo $config->mostrarModo();
?>
Explicación del código
Propiedad estática $modo: Define el modo en que está configurado el sistema (producción o desarrollo).
Método no estático mostrarModo(): Accede a la propiedad estática usando self::.
Acceso: Se crea una instancia de la clase Configuracion y se llama al método no estático para mostrar el valor de la propiedad estática.
Accediendo a Propiedades Estáticas desde Clases Hijas
Las propiedades estáticas también pueden ser accedidas desde clases hijas utilizando la palabra clave parent.
Ejemplo: Acceso a propiedades estáticas desde una clase hija
<?phpclass Sistema {
protected static $version = "1.0.0";
}
class Modulo extends Sistema {
public function mostrarVersion() {
return "Versión del sistema: " . parent::$version;
}
}
// Acceso directo a la propiedad estática
echo Sistema::$version;
// Acceso desde una instancia de la clase hija
$modulo = new Modulo();
echo $modulo->mostrarVersion();
?>
Explicación del código
Propiedad estática $version: Define la versión del sistema en la clase padre Sistema.
Método mostrarVersion(): Usa parent::$version para acceder a la propiedad estática de la clase padre desde la clase hija Modulo.
Acceso directo y desde la clase hija: Se accede directamente a la propiedad estática de la clase padre y también desde una instancia de la clase hija.
Actualización de Propiedades Estáticas
Las propiedades estáticas pueden ser modificadas, y el nuevo valor estará disponible en todas las instancias de la clase. Cualquier cambio que se haga a una propiedad estática afecta a todas las instancias de la clase.
Ejemplo: Modificación de una propiedad estática
<?php
class Banco {
public static $tasaInteres = 1.5;
public static function actualizarTasa($nuevaTasa) {
self::$tasaInteres = $nuevaTasa;
}
}
// Actualizar la tasa de interés
Banco::actualizarTasa(2.0);
// Mostrar la tasa de interés actualizada
echo "La nueva tasa de interés es: " . Banco::$tasaInteres;
?>
Explicación del código
Propiedad estática $tasaInteres: Almacena la tasa de interés del banco.
Método estático actualizarTasa(): Permite modificar el valor de la propiedad estática.
Actualización: Después de actualizar la propiedad estática, el nuevo valor es accesible para todas las instancias.
Conclusión
Las propiedades estáticas en PHP son útiles cuando necesitas valores compartidos entre todas las instancias de una clase. Se pueden acceder directamente desde la clase sin crear un objeto y son ideales para casos como constantes, contadores globales o configuraciones compartidas. Las propiedades estáticas también pueden ser modificadas y utilizadas dentro de la jerarquía de herencia.