static::
provides late binding which is a must if the static functions of the class can be overriden by an extending class and the static method is called from within the class. But in the case that a class can not be extended (it is final for example) would it be wrong to use static::
then as well?
Another way to ask the same, what should be the rule of thumb when calling static methods, to use static::
or self::
, or is there such a big drawback for using static::
that you should use it only when strickly required?