Late static binding controls which class is referenced in static contexts within inheritance. The key distinction: self:: refers to the class where the code is written, while static:: refers to the class that was actually — which matters when a child class inherits a parent's static method.
