Introduction
Static properties and methods belong to the class itself, not to any specific object. This means you can use them without creating an object first.
When you want to keep a value shared by all objects of a class, like a counter.
When you need a utility function that doesn't depend on object data.
When you want to store configuration or constants related to the class.
When you want to track how many objects of a class have been created.
When you want to call a method without creating an object first.