POO en PHP: Propiedades y métodos estáticos

La mayor parte de métodos y datos se aplican a las instancias de una clase. Es decir, tienes que crear un objeto para poder usarlos. En estos casos que hemos empleado una clase Usuario y puede darse el caso de hacer una comprobación de contraseña o saber cuál es el correo del usuario. Para ello se emplean operaciones a cada usuario con su respectiva instancia. Esto es algo que cambia completamente si usamos propiedades y métodos estáticos.

En el caso de querer mantener datos de una clase entera, puedes usar variables que almacenen un dato deseado y se apliquen a toda una clase. Para ello PHP proporciona la propiedad static para crear propiedades y métodos estáticos.Basicamente esto viene a decir que podemos acceder a miembros de una clase sin necesidad de instanciar o crear un objeto con ella. Sin embargo, una propiedad declarada como static no puede accederse a ella directamente dentro de una instancia de una clase pero un método si puede.

Ejemplo de propiedades y métodos estáticos

Supongamos que tenemos una clase llamada prueba. En ella habra una propiedad y un método estáticos. Voy a acceder tanto al método como la propiedad directamente sin instanciar.

Propiedad static ejemplos

En este ejemplo se puede observar que se pueden acceder a métodos y propiedades estáticas directamente sin instanciar la clase Prueba, sólo basta con Prueba:: y la propiedad o función que deseas llamar. Sin embargo, si instanciamos la clase y queremos acceder a la variable a través del objeto, no podremos y sólo será posible usando un método. Dicho método emplea self:: para referirse que la propiedad está en esa clase, es equivalente al this.

Hemos comprobado que podemos acceder a la propiedad de la clase sin instanciar pero, seríamos capaces de modificarlo? Sí, es posible

Os debería de mostrar «Modificado» quedando claro que se puede modificar la propiedad estática de una clase. Sin embargo, ten en cuenta que dicho valor se mostrará para todos. Esto quiere decir que si tienes un objeto instanciado con esa clase y modificas la propiedad estática, dicho valor será igual tanto para el objeto actual como los futuros objetos que instancies.

Y hasta aquí propiedades y métodos estáticos, espero que le saquéis partido. A seguir picando y buen finde! 🙂