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