The difference between "public" and "public static"?
public: Public declared items can be accessed everywhere.
protected: Protected limits access to inherited and parent classes (and to the class that defines the item).
private: Private limits visibility only to the class that defines the item.
static: A static variable exists only in a local function scope, but it does not lose its value when program execution leaves this scope.
final: Final keywords prevents child classes from overriding a method by prefixing the definition with final. If the class itself is being defined final then it cannot be extended.
Beside of PHP:
transient: A transient variable is a variable that may not be serialized.
volatile: A variable that might be concurrently modified by multiple threads should be declared volatile. Variables declared to be volatile won't be optimized by the compiler because their value can change at anytime.
Static means that it can be accessed without instantiating a class. This is good for constants.
Static methods need to have no effect on the state of the object. They can have local variables in addition to the parameters.