Hasta ahora se ha visto atributos y métodos que pertenecen a los objetos, es decir, que mantiene su estado y comportamiento a ese nivel. Es posible que se quiera tener accesos a nivel de clase, es decir, estados que sean compartidos a través de distintos objetos de una misma clase.
https://gist.github.com/senquevila/fd62b3972ac4d7456d34b132ac2ecd7f
Un ejemplo común es crear atributos incrementales, los cuales se modifican a medida que se crean objetos.
Cada objeto no incrementa al atributo $id
, pues el atributo pertenece a cada objeto. Para utilizar atributos y métodos de la propia clase, se utiliza la palabra static
para denotar este tipo de elementos.
https://gist.github.com/senquevila/adafcde0e6ad3ed6804875a4ad4b59ba
Características
- Para que un método o atributo pueda ser de la clase y no del objeto se usa
static
- Dentro del objeto se llaman utilizando la construcción:
self::$atributo
yself::funcion()
- Fuera del objeto se acceden utilizando la construcción
NombreClase::$atributo
yNombreClase::funcion()